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

Noo*_*z42 97 linux su login

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

我试图将外壳设置为/bin/false但是当我尝试su它时不起作用。

有几种方法只允许登录su

SSH 是AllowUser要走的路吗?(如果这是要走的路,我会怎么做)

Flo*_*sch 115

您可以使用的AllowUsers / AllowGroups如果你只有很少的用户/正在通过SSH或允许登录团体DenyUsers / DenyGroups如果你只有很少的用户/那些团体容许登录。请注意,这仅限制通过 ssh 登录,其他登录方式(控制台、ftp 等)仍然是可能的。对于大多数 ssh 安装,您需要将这些选项添加到您的/etc/ssh/sshd_config文件中。

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

  • su -s 的诀窍是金子。我一直将它用于我需要测试权限的系统帐户,例如 apache、nobody 等。我通常执行 su - user -s /bin/bash。可选参数 - 可用于提供类似于用户直接登录时所期望的环境。 (4认同)
  • 如果您需要加载环境变量(例如来自 /etc/profile),传递额外的破折号即可:`su - -s /bin/bash user` (2认同)

小智 13

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


ast*_*stl 9

如果帐户没有密码(passwd -d username),则他们无法交互登录(控制台、SSH 等)。如果他们有一个有效的 shell,su仍然可以工作。不过,请注意“交互式”;如果有人决定为该帐户设置 SSH 密钥对,它将起作用!