web-dev-qa-db-ja.com

npm Sudoグローバルインストールとunsafe-perm

私はnpmモジュールをインストールしようとしています:

Sudo npm install -g now

ただし、それを試みると、警告が表示されます。

警告! --unsafe-permオプションを指定してNow CLIを再度インストールしてください。
例:npm i -g --unsafe-perm now

このunsafe許可は私を心配し、明確にしたい警告を修正するためにそれに従う必要があるか、それとも無視できますか?

https://docs.npmjs.com/misc/config#unsafe-perm の説明は、私にとってはあまり意味がありません。この 2016年3月30日にsam-githubからコメント は、その意味についてより明確に説明しています。

しかし、この2つを数回読んだ後でも、--unsafe-permが何をしているのか、またその意味は不明です。そう、

  • デフォルト:ルートとして実行している場合はfalse
  • パッケージスクリプトの実行時にUID/GIDの切り替えを抑制するには、trueに設定します。

上記の2つの「running」は同じことを言っているのか、違うことを言っているのか?同じ場合は、インストール時ですか実行時ですか?

できるのは

  • それをインストールする
  • 最小限のセキュリティリスクで、システム内の誰でも使用できるようにします

だから私は何をすべきですか?

7
xpt

nsafe-perm から正しく読むと

  • デフォルト:ルートとして実行している場合はfalse、そうでない場合はtrue
  • タイプ:ブール

パッケージスクリプトの実行時にUID/GIDの切り替えを抑制するには、trueに設定します。 falseに明示的に設定されている場合、非rootユーザーとしてインストールすると失敗します。

最初の質問に答えるには:

私が望むのは、それをインストールできるようにすることです。以下の手順に従ってください。

Sudoを使用してnowをインストールする場合は、--unsafe-permオプションは、npmをルートアカウントとして実行します。そして、あなたは同様にあなたの端末から直接実行することができます

Sudo npm install --unsafe-perm=true -g now

次の質問に答えるには:

私が望むのは、システム内の誰でも最小のセキュリティリスクでそれを使用できるようにすることです

Root気分でnowのインストールを実行することをお勧めします。これにより、すべてのユーザーがそれを使用でき、root権限のない方法でアンインストールする権限がなくなります。したがって、多分あなたは通常の慣行を無視する必要があります

2
antzshrek