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


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

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

有几种方法只允许登录 su

是SSH的 AllowUser 要走的路? (如果是这样的话我该怎么做)


86
2018-06-09 15:13






答案:


您可以使用 的AllowUsers / AllowGroups 如果您只有少数用户/组可以通过ssh或 DenyUsers / DenyGroups 如果你只有几个用户/组  允许登录。请注意,这仅限制通过ssh登录,其他登录方式(控制台,ftp,...)仍然可以。您需要将这些选项添加到您的 的/ etc / SSH / sshd_config中 大多数ssh安装的文件。

如果已将登录shell设置为 /斌/假 您可以使用 su -s /bin/bash user (更换 /斌/庆典 用你选择的外壳)


108
2018-06-09 15:40



非常感谢所有人。我没想到在我的问题上获得2+赞成票:)我喜欢 “苏......” 构建了很多,console / ftp是个好点。我真的喜欢“su -s”之类的东西。 - NoozNooz42
su -s技巧是黄金。我一直用它来测试我需要测试权限的系统帐户,例如apache,nobody等。我通常做su - user -s / bin / bash。可选参数 - 可用于提供类似于用户在用户直接登录时所期望的环境。 - dmourati
如果您需要加载环境变量(例如来自/ etc / profile),则传递额外的破折号将执行此操作: su - -s /bin/bash user - Leons


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


13
2018-02-18 10:04





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


7
2018-06-09 15:53



用户是否需要有一个有效的shell来su?在你su给另一个用户之后我很确定你仍然在同一个原始的shell中......你实际上并没有像其他用户一样登录...所以,只需将shell设置为/ dev / null就可以了以及。 - Brian Postow
是的,它仍然需要一个有效的shell:[root @ localhost~] #su daemon这个帐户目前不可用。 [root @ localhost~] #su - daemon此帐户目前无法使用。 (RHEL系统,守护进程的shell是/ sbin / nologin) - astrostl


在sshd_config中添加一行 DenyUser [username]

请注意,这不会阻止该用户通过控制台登录。


3
2018-06-09 15:28



那应该是 DenyUsers,用's'。 - David G


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


2
2017-09-27 22:16





正如其他人所说;

DenyUser username 要么 DenyGroup groupname 在 sshd_config 会阻止通过ssh登录密钥对/密码。

虽然我通常做类似的事情 AllowGroup ssh 或者沿着这些方向的东西,并明确地添加需要ssh访问该组的人。

然后,你可以像其他人所说的那样做: passwd -d username 删除用户密码,因此无法在控制台或其他方式登录。还是更好 passwd -l username “锁定”帐户。有可能ssh会拒绝访问锁定的帐户,即使有密钥,但我并不积极。


1
2018-06-09 16:15



实际上,即使帐户密码被锁定,ssh也允许您使用密钥身份验证登录。 - Richard Holloway
很高兴知道,谢谢你的澄清...... - cpbills


正如我在评论中提到的,我认为您仍然可以使用无效的shell进入帐户。因此,如果你将用户的shell设置为/ dev / null或bin的shell是什么,你应该仍然可以su到该用户...但任何以任何方式登录的尝试都会退出你...


1
2018-06-09 16:26





编辑/ etc / shadow添加!到密码哈希的开头。

username:!<hash>:#####:#:#####:#:::

在保护新安装时,这是我在安装sudo后首先要做的事情,因此没有人能够使用root用户登录或ssh进入系统,sudo用户仍然可以以root用户身份执行。


1
2017-12-31 01:38





不要为不允许登录或删除的用户指定密码。

# passwd -d myuser

0
2018-06-09 15:50