我需要在没有密码的情况下以 sudo 的形式运行一些东西,所以我使用visudo
并将其添加到我的sudoers
文件中:
MYUSERNAME ALL = NOPASSWD: /path/to/my/program
Run Code Online (Sandbox Code Playgroud)
然后我试了一下:
$ sudo /path/to/my/program
[sudo] password for MYUSERNAME:
Run Code Online (Sandbox Code Playgroud)
为什么它要求输入密码?如何在不要求密码的情况下以非 root 用户身份以 root 身份运行/使用命令?
要在禁用 root 帐户的计算机上启动 root shell,您可以运行以下命令之一:
sudo -i
: 运行交互式登录 shell(读取/root/.bashrc
和/root/.profile
)sudo -s
: 运行一个非登录的交互式 shell(读取/root/.bashrc
)在 Ubuntu 世界中,我经常看到sudo su
建议是获取 root shell 的一种方式。为什么要运行两个单独的命令呢?据我所知,sudo -i
等效于sudo su -
并且sudo -s
与sudo su
.
唯一的区别似乎是(比较sudo -i
左侧和sudo su -
右侧):
并比较sudo -s
(左)和sudo su
(右):
主要区别(忽略SUDO_foo
变量 和LS_COLORS
)似乎是版本中的XDG_foo
系统变量sudo su
。
是否有任何情况下这种差异需要使用相当不雅的sudo su
?我可以安全地告诉人们(就像我经常这样)跑步没有任何意义sudo su
还是我错过了什么?