ターミナルをsudoモードで実行するにはどうすればよいですか?


20

私はnpmをインストールしようとしていて、

npm ERR! Error: EACCES, Permission denied '/usr/local/lib/node_modules'
npm ERR! 
npm ERR! Please use 'sudo' or log in as root to run this command.
npm ERR! 
npm ERR!     sudo npm "install" "." "--force" "--global"
npm ERR! 
npm ERR! or set the 'unsafe-perm' config var to true.
npm ERR! 
npm ERR!     npm config set unsafe-perm true

どうすればルートとしてログインできますか?


3
rootとしてログインしないでください。;-)
クリスページ

回答:


38

sudo -srootユーザーを有効にするよりもはるかに簡単です。これは、オンデマンドアクションの1ステップとしてroot権限でシェルを起動するだけだからです。高速であるだけでなく、rootユーザーが不要な場合は再構成する必要がなく、rootユーザーを追加することによってサーバーがそれ以上のリスクや脆弱性にさらされることはありません。

もちろんnpm、指示に従うだけで入力できます:

sudo -H npm "install" "." "--force" "--global"

それでもnpmコマンドは「root」になり、ログアウト手順をスキップしてルートから復帰します。


7
しかし、一つのコマンドはsudoへのより良いのではなく、rootとしてシェルの下で実行
マーク・

1
sudo -sこの文脈で何をするのか説明できますか?
KatieK

1
@KatieKこのコマンドsudo -sは、シェルをルートとして実行します。マニュアルページには、これらの詳細および大いに多くを持っています。あなたの質問は良いものであり、他の多くの人もそれが何をするのか疑問に思うかもしれないので、私はいくつかの言葉を加えます。
bmike

@bmike-それがまさに私が必要としたものです-ありがとう!
KatieK

10

私は通常、他の人がここで説明する方法とは少し異なります。2人のユーザーがいるとします。標準ユーザー:john管理ユーザー:kevin

johnがログインしていて、rootユーザーとして(kevinとして)実行したい場合は、次のようにします。

su kevin

ケビンのパスワードを入力するように求められたら

sudo npm "install" "." "--force" "--global"

ケビンのパスワードをもう一度入力してください。


すでにユーザーをケビンに切り替えた後、なぜ必要なのsudoですか?
cm2

Kevinはルートではないため、ルートになることが許可されています。
Xvolks

4

あなたは使用する必要がsuルートになることを命じるが、唯一のルートは、あなたが使用する必要があるので、ルートになることを許可されている(スイッチユーザー)sudo(スーパユーザでください)。したがって、次を入力しますsudo su

[william@NCC-1701 ~]$ sudo su
Password:
[root@NCC-1701 /Users/william]$ 

以前にrootを使用したことがない場合は、rootとして入力した1つの間違った文字が、写真、メール、および財務書類を含むオペレーティングシステム全体を削除することを完全に認識する必要があります。Enterキーを押す前に、入力した内容を常に3回読んで慎重に読んでください。それ以外の場合は、幸運を祈ります!


1
3年間AIXサポート技術者でした... 12年前:)何かを知っていますが、単純なものは私の頭から消えていました:)
balexandre

わかりやすいマニュアルとGoogleの提案で答えを隠そうとしましたが、あなたの略歴を読んだ後すぐにそれを削除しました。Macへようこそ。AIXを何年も使った後でも、vm_statと入力することはできません。Gotta love shell aliases ;-)
bmike

sudo su代わりに使用するのはなぜsudo -sですか?
クリスページ

1
私が見るすべては笑NCC-1701である
シェーン・スー

@ShaneHsuいいね!! 私はあなたのコメントが大好きだった...
jmh

2

ionicをインストールしようとして同じ問題を実行しましたが、同じコマンドを実行する必要があるのは次のコマンドのみですsudo

sudo npm install -g ionic cordova

システムは現在のユーザーのパスワードを要求します。それを提供すれば、スーパーユーザーとしてインストールできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.