Ravexina Asked: 2018-09-01 09:36:49 +0800 CST2018-09-01 09:36:49 +0800 CST 2018-09-01 09:36:49 +0800 CST 当 /run/nologin 存在时,是否可以远程取消预定的关机? 772 考虑这种情况: 用户ssh进入系统并做他/她想做的任何事情。 然后安排shutdown使用: sudo shutdown -h +1 最后关闭 ssh 会话 现在/run/nologin已经创建,没有人可以登录了,但是出现了一些事情,我们想ssh在系统崩溃之前回到系统。 当我们不再被允许登录时,是否可以远程取消预定的关机? ssh shutdown 3 个回答 Voted Best Answer Ravexina 2018-09-01T09:58:34+08:002018-09-01T09:58:34+08:00 除了使用“root”帐户建立新ssh连接之外,我们实际上可以使用 PAM 来允许特定用户或组登录。 PAM 配置sshd位于:/etc/pam.d/sshd负责您要查找的内容。 通过编辑此文件并使用pam_succeed_if.so我们可以允许特定用户或组登录,即使/run/nologin机器上存在。 pam_succeed_if.so 旨在根据属于被验证用户的帐户特征或其他 PAM 项的值来成功或失败验证。一种用途是根据这个测试选择是否加载其他模块。 pam_nologin.so因此,我们使用它来根据您的用户名或用户组来检测我们应该加载或不加载模块。 使用您喜欢的文本编辑器打开文件: $ sudo vi /etc/pam.d/sshd 并找到这些行: # Disallow non-root logins when /etc/nologin exists. account required pam_nologin.so 在它们之间添加这一行: account [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo 所以现在这些行应该是这样的: # Disallow non-root logins when /etc/nologin exists. account [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo account required pam_nologin.so 现在sudo组中的用户即使/run/nologin存在也可以登录。 并允许特定用户: account [default=2 success=ignore] pam_succeed_if.so quiet user != username 如需更灵活的条件结帐: man pam_succeed_if DopeGhoti 2018-09-01T09:40:44+08:002018-09-01T09:40:44+08:00 如果root可以远程登录系统,nologin则忽略。但是,大多数理智的管理员不允许root直接远程登录,而是允许授权用户登录和使用sudo. 但是,如果不是后者,则root可以登录并中止关机。 RalfFriedl 2018-09-01T09:41:18+08:002018-09-01T09:41:18+08:00 用户 root将nologin忽略 。因此,您可以使用 SSH 以 root 身份连接,但您可能有一个默认情况下不允许 root 登录的发行版。您可以创建一个 SSH 密钥并将其放入 中~root/.ssh/authorized_keys,然后您可以使用该密钥以 root 身份登录。
除了使用“root”帐户建立新
ssh
连接之外,我们实际上可以使用 PAM 来允许特定用户或组登录。PAM 配置
sshd
位于:/etc/pam.d/sshd
负责您要查找的内容。通过编辑此文件并使用
pam_succeed_if.so
我们可以允许特定用户或组登录,即使/run/nologin
机器上存在。pam_nologin.so
因此,我们使用它来根据您的用户名或用户组来检测我们应该加载或不加载模块。使用您喜欢的文本编辑器打开文件:
并找到这些行:
在它们之间添加这一行:
所以现在这些行应该是这样的:
现在
sudo
组中的用户即使/run/nologin
存在也可以登录。并允许特定用户:
如需更灵活的条件结帐:
如果
root
可以远程登录系统,nologin
则忽略。但是,大多数理智的管理员不允许root
直接远程登录,而是允许授权用户登录和使用sudo
. 但是,如果不是后者,则root
可以登录并中止关机。用户 root将
nologin
忽略 。因此,您可以使用 SSH 以 root 身份连接,但您可能有一个默认情况下不允许 root 登录的发行版。您可以创建一个 SSH 密钥并将其放入 中~root/.ssh/authorized_keys
,然后您可以使用该密钥以 root 身份登录。