我已经双启动到 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 身份启动该服务?
我希望这个对你有用。