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

Wes*_*ley 63 bash su

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

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

什么可能导致这种行为?我该如何解决这个问题?

cam*_*amh 86

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

  • 如果您需要在以 `/bin/false` 作为其 shell 的用户下调试某些内容,您可以使用 `su - user -s /bin/sh` 来完成。 (32认同)
  • 就是这样。我发誓我是第一个看的!=) (2认同)

Mag*_*lan 7

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

strace su donaldduck
Run Code Online (Sandbox Code Playgroud)

应该给你很多输出来整理,但那里的东西应该表明问题发生在哪里。


Ale*_*ain 5

您应该在 中检查 shell /etc/passwd,并且不希望居高临下,检查whoami运行后的输出su