两个超级用户命令有什么区别,su -s
和sudo -s
?
他们都提供了一个可以访问超级用户帐户的 shell。
我已经在Stack Overflow 中问过这个问题,但我被要求在这里发布。所以做同样的事情。
我使用我的java程序运行了这个命令-
sudo -u <username> -S pwd
Run Code Online (Sandbox Code Playgroud)
我得到了这个输出-
command=sudo -u <username> -S pwd
exitCode=1
sudo: sorry, you must have a tty to run sudo
Run Code Online (Sandbox Code Playgroud)
我尝试编辑 /etc/sudoers 但它已经包含
<username> ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
然后,我了解到这可以通过在 /etc/sudoers 中注释掉以下代码来完成
# Defaults requiretty
Run Code Online (Sandbox Code Playgroud)
此外,默认情况下,当尝试以其他用户身份使用 执行命令时sudo
,我们必须提供自己的密码。但这可以通过在 /etc/sudoers- 中进行以下更改来更改
Defaults targetpw
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否可以在 Java 中执行我的上述命令而无需在任何地方进行任何更改,即通过默认设置?