如何在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

如何以root用户身份登录?


3
不要以root用户身份登录。;-)
克里斯·佩奇

Answers:


39

sudo -s 比这容易得多 启用root用户,因为它只是启动一个具有root权限的shell,这是按需执行的一步操作。它不仅速度很快,而且在您不需要root用户并且不需要使服务器承受添加root用户所带来的更多风险或漏洞的情况下,也无需重新配置它。

当然,npm您可以按照说明输入以下内容:

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

这仍然使npm命令成为“ root”,并跳过注销步骤以退出root。


7
但是最好是对一个命令进行sudo,而不是在root下在shell下运行
user151019 2011年

1
您能解释一下sudo -s这方面的含义吗?
KatieK

1
@KatieK该命令sudo -s以root身份运行shell。该手册有这些细节等等。由于您的问题是一个很好的问题,所以我会补充一些话,其他许多人也可能想知道它的作用。
bmike

@bmike-这正是我需要的-谢谢!
KatieK

10

我所做的通常与此处其他人所描述的有所不同。假设您有两个用户。标准用户:john管理员用户:kevin

如果john登录并想以root用户(如kevin)身份运行,这就是我的操作方法。

su kevin

当要求输入凯文的密码时

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

再次输入kevin的密码。


将用户切换为kevin后,为什么需要使用sudo
cm2

因为凯文不是根,所以只允许他成为根。
Xvolks

4

您需要使用su(switch user)命令成为root用户,但是只允许root用户成为root用户,因此您需要使用sudo(super-user do)。因此,键入:sudo su

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

如果您以前从未使用过root,则应充分意识到,键入为root的错误字符将删除整个操作系统,包括照片,电子邮件和财务文件。要格外小心,在按Enter键之前,请务必三重阅读您键入的内容。否则,祝你好运!


1
成为AIX支持技术人员已有3年了……12年前:)知道了一些东西,但简单的东西却从我的脑海中消失了:)
balexandre

我本来希望通过友好的手册和Google建议来回答我的问题,但是在阅读了自己的简历后很快将其删除。欢迎使用mac。经过多年的AIX,我仍然无法输入vm_stat。爱外壳别名;-)
bmike

为什么用sudo su代替sudo -s
克里斯·佩奇

1
我所看到的只是NCC-1701大声笑
Shane Hsu

@ShaneHsu好人!!我喜欢您的评论...
jmh

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.