进一步阅读

进一步阅读

两者有什么区别

su target-user

login target-user

?后者可能需要sudo

在我看来,它们都为target-user.谢谢。

答案1

在我看来,它们都为目标用户创建了一个登录会话。

事实上,他们没有。 su不创建登录会话。它“切换用户”以在不同用户帐户的支持下运行程序,将权限(该帐户的权限)添加到该用户可用的权限总数中。现存的它运行的登录会话。

事实上,login程序并没有创建登录会话任何一个。它需要登录会话,运行的进程login标记为会议主持人进程和附加的控制终端已由调用它的任何程序设置。 login target-user,假设 C shell 的内置login命令实际上是一个exec,则选择现存的已为另一个用户帐户设置登录会话。这当然会带来目前众所周知的风险。

这当然是考虑到内核的概念登录会话,其中涉及到会议主持人, A控制终端, 和进程组。 systemd 人员发明了他们自己的完全应用程序模式的登录会话概念,并通过systemd-logindPAM 插件进行管理。这里的规则略有不同,部分原因是 systemd 人们通过将关闭时的服务停止与会话挂起混为一谈而搞砸了(仍然需要解决这个问题)。但su也不会创建这种类型的登录会话。

进一步阅读

相关内容