“sudo -su” 是什么意思?

3

我有一个Linux用户 (user2),设置了shell为/usr/sbin/nologin(以阻止登录),当我尝试使用sudo su user2切换到该用户时,会提示该帐户不可用。但是当我使用sudo -su user时,却可以正常使用。

su-su之间有什么不同?或者说-su表示什么意思?我尝试使用-h--help或手册进行查找,但没有找到有用的信息。


-s 选项表示使用调用者的 shell。 - stark
1个回答

6

sudo -su user 等同于 sudo -s -u user-s 选项表示要运行在环境变量SHELL中指定的shell(如果已设置),否则是用户的登录shell-u user 选项表示要以特定用户而非root用户身份运行命令。有关这些选项的详细信息,请参见man sudo

sudo su user 将使用sudo作为root用户来运行命令su user。然后,su命令将调用指定用户名的登录shell。可以不使用sudo来运行su user命令,但通过以root身份运行它,它不需要目标用户的密码。有关详细信息,请参见man su

所以两个命令看起来相似(主要是偶然的),当目标用户具有与调用用户相同的登录shell时,它们会产生类似的效果。然而,在调用用户的环境中设置了SHELL环境变量(通常是/bin/bash),并且目标用户具有与此不同的登录shell(例如/usr/sbin/nologin)的情况下,这两个命令执行的shell不同,这就是你所看到的区别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接