我怎样才能以 root 身份运行所有程序

我怎样才能以 root 身份运行所有程序

我已经双启动到 lubuntu(Windows XP),每次启动时都会要求我输入密码。如何以 root 身份运行所有内容而不再次询问密码?理想情况下,我想运行 nginx,但它存在权限被拒绝的问题:

apathetic@ubuntu:~$ service nginx start
Starting nginx: nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2012/08/03 20:06:25 [warn] 4762#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2012/08/03 20:06:25 [emerg] 4762#0: open() "/var/run/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed

答案1

逃跑是个坏主意一切以 root 身份运行。

对于实际上需要以 root 身份运行的东西(包括service nginx start),最好的方法是使用sudo

sudo service nginx start

默认情况下,如果您在过去 15 分钟内未输入密码,系统将要求您输入密码。

您可以配置/etc/sudoers让您以 root 身份运行命令而无需输入密码,使用NOPASSWD.man sudoers了解详情。

(该visudo命令是推荐的编辑方式/etc/sudoers。)

如果你坚持直接以 root 身份执行命令,你可以使用以下命令启动 root shell

sudo bash

或者

 sudo -i

(相当于sudo --login)。

我的建议是:不要这样做。输入sudo每个需要 root 权限的命令有助于提醒您不要不必要地使用它。非常很容易搬起石头砸自己的脚。

答案2

您可以在命令字符串前面使用 sudo 命令以 root 身份运行某些操作;

即#sudo service nginx start

如果您想“一直”以 root 身份运行(这不是一个好主意),您可以为 root 用户设置密码(sudo passwd)然后登录,或使用 su 转换为 root。

如果您只是希望“始终”以 root 身份运行此服务,那么您可以将其添加到 /etc/rc.local,这样就会在启动时以 root 身份启动该服务?

我希望这个对你有用。

相关内容