当/etc/nologin存在时,我可以允许非root用户登录吗?

当/etc/nologin存在时,我可以允许非root用户登录吗?

假设具有 sudo 权限的非 root 用户执行延迟关闭(shutdown +10或其他方式)并注销。然后,在关闭发生之前,他想要重新登录并取消关闭。问题是shutdown创建/etc/nologin, 并且login只允许 root 在该文件存在时登录...是否可以为此为用户创建异常?

如果没有,让用户启动延迟关闭,然后登录并稍后取消的最佳方法是什么?

答案1

如果您的系统使用聚丙烯酰胺,存在时拒绝登录/etc/nologinpam_nologin模块

您可以跳过pam_nologin对符合特定条件的用户的调用pam_succeed_if。例如,如果您希望允许adm组中的用户登录文本控制台(即使/etc/nologin存在),请将以下行添加到/etc/pam.d/login以下行之前auth requisite pam_nologin.so

auth [default=ignore success=1] pam_succeed_if.so quiet user ingroup adm

答案2

Vesa K 版本的 Ryan Novosielski 答案对我有用,但内容如下:

/etc/pam.d/sshd

不是:

/etc/pam.d/login

就我而言,我只想允许 Ubuntu 14.04 LTS 下的 UID 1000 通过 SSH 登录。

# Disallow non-root logins when /etc/nologin exists.
account [success=1 default=ignore] pam_succeed_if.so quiet uid eq 1000
account    required     pam_nologin.so

答案3

Gilles 上面的答案非常好,但请注意,您必须将“类型”与 pam_nologin.so 的类型相匹配。例如,在我的 RHEL5 系统上:

account [default=1 success=ignore] pam_succeed_if.so quiet user ingroup nx
account required     pam_nologin.so

...如果我按照其他答案的要求使用身份验证,它将不起作用。

答案4

我今天尝试了 Ryan 的规则,发现 Gils 和 Ryan 的答案机器人的成功/默认规则“相反”,nologin 仅阻止 nx-group。这就是我实现此规则的方式(nx 组不会被 nologin 阻止)。

account [success=1 default=ignore] pam_succeed_if.so quiet user ingroup nx
account required     pam_nologin.so

相关内容