如何在 Linux 中阻止用户登录,但允许“su - user”?

如何在 Linux 中阻止用户登录,但允许“su - user”?

如何允许用户使用“su - 用户“但阻止用户使用 SSH 登录?

我尝试设置 shell/bin/false但是当我尝试时su它不起作用。

是否有几种方法可以仅允许登录su

SSH 是AllowUser可行的方法吗?(如果这是可行的方法,我该怎么做)

答案1

您可以使用允许用户/允许群组如果你只有少数用户/组被允许通过 ssh 登录或拒绝用户/拒绝群组如果你只有少数用户/组不是允许登录。请注意,这仅限制通过 ssh 登录,其他登录方式(控制台、ftp 等)仍然可行。您需要将这些选项添加到您的/etc/ssh/sshd_config适用于大多数 ssh 安装的文件。

如果您已将登录 shell 设置为/bin/false你可以使用su -s /bin/bash user(替换/bin/bash带有您选择的外壳)

答案2

如果您仍希望 su 正常工作,可以使用sudo -u [username]或传递-s /bin/bash给 su 作为临时 shell。在没有 shell 的情况下,它们的作用相同/etc/passwd

答案3

如果帐户没有密码(密码-d 用户名),他们无法以交互方式登录(控制台、SSH 等)。如果他们有有效的 shell,仍将有效。但请注意“交互式”;如果有人决定为该帐户设置 SSH 密钥对,它就会起作用!

答案4

除了上面提到的(禁用和/或不设置用户密码)之外,pam_access 模块(查找 pam_access 和 access.conf 的手册页)可用于控制登录访问。

相关内容