我能够使用具有 sudo 权限的管理员帐户通过 SSH 连接到我的服务器(CentOS 5.9):
$ ssh admin@myserver
Last login: Wed Feb 27 19:23:11 2013 from [IP ADDRESS]
[admin@myserver ~]$
然后我可以通过 su 来变成 root :
[admin@myserver ~]$ sudo su root
[sudo] password for admin:
[root@myserver admin]#
但我无法 su 到其他用户,并且 su 命令没有告诉我原因:
[admin@myserver ~]$ sudo su anotheruser
[admin@myserver ~]$ whoami
admin
知道为什么我可以用 su 转换为 root 用户,但不能用 su 转换为其他用户吗?
我怎样才能让 su 告诉我为什么它没有按照我想要的方式运行?
答案1
授予了哪些/etc/sudoers
权限admin
?
另外,正如root
,你总是可以su - anotheruser
。也许需要额外的步骤,但在不知道你的 sudoers 文件的情况下,这可以工作。
答案2
sudo
如果它对其他人有用:我刚刚遇到了同样的症状,但答案与配置无关。
相反,重要的是用户我尝试过su
。目标用户是服务伪用户 (jenkins),其 shell 为 /bin/false。解决方法是将 shell 更改为有效 shell(使用chsh
)。
答案3
检查/var/log/security
和/var/log/auth.log
。
为什么要sudo
使用su
?除非您更改标准 ACL,否则无需这样做。
如果您使用sudo
,则问题可能与您的 sudoer 文件有关。请验证您是否已正确配置它。