npm sudo global installation&unsafe-perm

xpt*_*xpt 9 node.js npm npm-install

我正在尝试使用以下命令安装npm模块:

sudo npm install -g now
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这个时,我收到一个警告:

警告!请尝试使用该--unsafe-perm选项再次安装Now CLI .
例:npm i -g --unsafe-perm now

这个不安全的许可让我很担心,我想明确是否需要按照它来修复警告,或者我可以忽略它?

https://docs.npmjs.com/misc/config#unsafe-perm的解释对我来说并不是很重要.这从SAM-的github上2016年3月30日评论解释更清楚了解的含义.

然而,即使在阅读了两次之后,我仍然不清楚--unsafe-perm正在做什么,这意味着什么.所以,

  • 默认值:如果以root身份运行则为false
  • 设置为true以在运行程序包脚本时禁止UID/GID切换.

以上两个" 跑步 "讲述同样的事情或不同的事情吗?如果它是同一个东西,那么它是安装时间还是运行时间?

我想要的只是能够

  • 安装它
  • 并且让我系统中的任何人都能够以最小的安全风险使用它

所以我该怎么做?

ant*_*rek 9

正如您正确阅读unsafe-perm

  • 默认值:如果以 root 身份运行,则为 false,否则为 true
  • 类型:布尔型

设置为 true 以在运行包脚本时禁止 UID/GID 切换。如果明确设置为false,则以非 root 用户身份安装将失败。

回答你的第一个问题:

我想要的只是能够安装它,请按照以下步骤操作。

如果要使用sudo安装now,则需要指定--unsafe-permnpmroot 帐户运行的选项。您也可以通过运行直接从终端执行此操作

sudo npm install --unsafe-perm=true -g now
Run Code Online (Sandbox Code Playgroud)

要回答您的下一个问题:

我想要的只是让我系统中的任何人都能够使用它,并且安全风险最小

我会建议你now在 root 上运行你的安装,这样任何用户都可以使用它,并且在没有 root 权限的情况下不会有以任何方式卸载它的权限。所以也许你应该无视常规做法

  • _“不要使用 sudo 在本地安装模块。永远不要。这是不必要的”_,如果我不这样做,使用 `npm install -g now`,我会得到:`npm WARN checkPermissions Missing write access to /usr/ lib/node_modules npm ERR!路径 /usr/lib/node_modules npm ERR!代码 EACCES ` (2认同)