su不会更改用户,但也不会响应错误


56

在登录时,root我想登录su到特定的普通用户。我运行su username并立即收到提示,仍然是root。没有给出错误。我知道旧的“您要尝试使用的用户不具有您当前所在文件夹的权限”问题,在这种情况下并非如此。此外,没有显示任何错误,就我所知,在遇到特定权限问题时,通常就是这种情况。

我尝试su - username了相同的效果。该命令已处理,没有看到错误,我立即收到提示。

是什么导致这种现象?我该如何解决?


8
用户拥有什么外壳?是/bin/false
卡姆(Camh)2012年

4
您确实应该使用sudo -u username -s(或-i)BTW。
mgorven

2
@camh facepalm就是这样。我发誓/etc/passwd昨晚我检查过了,不是那样的!=)您能回答这个问题吗?我会接受的。
韦斯利2012年

Answers:


68

检查用户使用的外壳/etc/passwd。如果外壳程序是/bin/false(不允许登录的常用外壳程序),那么您将看到您描述的行为。或者,可能是其他一些立即终止程序给出了相同的有效结果。


2
就是这样 我发誓我先看了!=)
韦斯利(Wesley

25
而且,如果您需要在具有/bin/falseshell身份的用户下调试某些东西,可以使用进行调试su - user -s /bin/sh
Marki555 2012年

6

我建议在su进程上使用strace来查看进程失败的地方。

strace su donaldduck

应该给您很多输出进行分类,但是其中应该有指示问题发生的地方。


1
愚蠢的降价。...–
麦哲伦

4

您应该将外壳检入/etc/passwd,并且不要希望光顾,而是whoami在运行后检查的输出su


1
不确定为什么会考虑光顾,因为我当然不会那样做。我的意思是,如果您愿意,我可以,但是那不是我的初衷。=)无论如何,是的,我忘了声明自己是为了确保自己就是我以为的那个人,而我仍然是,root而不是我要切换到的用户。
韦斯利

0

检查系统日志:使用sudo应该记录所有操作。因此,如果有问题,应将其记录下来。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.