如何允许用户使用“ su -
user ”登录但阻止用户使用SSH登录?
我尝试将外壳设置为,/bin/false
但是尝试时su
不起作用。
有几种方法仅允许登录su
吗?
SSH是AllowUser
要走的路吗?(如果可以的话,我将如何做)
如何允许用户使用“ su -
user ”登录但阻止用户使用SSH登录?
我尝试将外壳设置为,/bin/false
但是尝试时su
不起作用。
有几种方法仅允许登录su
吗?
SSH是AllowUser
要走的路吗?(如果可以的话,我将如何做)
Answers:
您可以使用的AllowUsers / AllowGroups如果你只有很少的用户/被允许通过ssh或登录组DenyUsers / DenyGroups如果你只有很少的用户/那些团体没有允许登录。请注意,这仅限制通过ssh登录,其他登录方式(控制台,ftp,...)仍然可行。对于大多数ssh安装,您需要将这些选项添加到/ etc / ssh / sshd_config文件中。
如果已将登录外壳程序设置为/ bin / false,则可以使用su -s /bin/bash user
(将/ bin / bash替换为您选择的外壳程序)
su - -s /bin/bash user
如果帐户没有密码(passwd -d username),则它们将无法交互登录(控制台,SSH等)。如果它们具有有效的shell,su仍然可以工作。但是请注意“交互式”;如果有人决定为该帐户设置SSH密钥对,那么它将起作用!
正如其他人所说的;
DenyUser username
或DenyGroup groupname
在sshd_config
将防止密钥对/密码登录通过ssh。
尽管我通常按照类似的方式做类似的AllowGroup ssh
事情,或者明确地添加需要ssh访问该组的人。
然后,您可以按照别人所说的做:passwd -d username
清空用户密码,使他们无法在控制台上登录或以其他方式登录。还是最好passwd -l username
“锁定”帐户。ssh有可能会拒绝访问已锁定的帐户,即使使用密钥也是如此,但我对此并不乐观。
正如我在评论中提到的那样,我认为您仍然可以使用无效的shell进入帐户。因此,如果将用户的外壳程序设置为/ dev / null或bin的外壳程序,则您仍应该能够su到该用户...但是以任何方式登录的任何尝试都会使您退出。