我怎样才能以 root 身份运行一切

Jür*_*aul 0 sudo lubuntu

我已经双启动到 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
Run Code Online (Sandbox Code Playgroud)

Kei*_*son 7

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

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

sudo service nginx start
Run Code Online (Sandbox Code Playgroud)

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

您可以配置/etc/sudoers为让您以 root 身份运行命令而无需使用NOPASSWD. man sudoers详情。

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

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

sudo bash
Run Code Online (Sandbox Code Playgroud)

或者

 sudo -i
Run Code Online (Sandbox Code Playgroud)

(相当于sudo --login)。

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

  • 基思完全正确。如果您在某个时候需要做一些事情,并且只需要保存几次击键,您可以输入 `sudo bash` 并保持 shell 打开,以执行您需要做的事情。在管理员和用户的要求下,sudo 的使用已经发展成为一种“最佳实践”,他们在过去的几十年里犯了无数可怕的错误。 (3认同)