考虑这个场景:
ssh进入系统并做他/她想做的任何事情。然后安排一个shutdown使用:
sudo shutdown -h +1
Run Code Online (Sandbox Code Playgroud)现在/run/nologin已经创建,没有人可以再登录了,但是出现了一些事情,我们想ssh在它崩溃之前回到系统。
当我们不再被允许登录时,是否可以远程取消预定的关机?
Rav*_*ina 11
除了使用“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
Run Code Online (Sandbox Code Playgroud)
并找到这些行:
# Disallow non-root logins when /etc/nologin exists.
account required pam_nologin.so
Run Code Online (Sandbox Code Playgroud)
在它们之间添加这一行:
account [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo
Run Code Online (Sandbox Code Playgroud)
所以现在这些行应该是这样的:
# 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
Run Code Online (Sandbox Code Playgroud)
现在sudo组中的用户即使/run/nologin存在也可以登录。
并允许特定用户:
account [default=2 success=ignore] pam_succeed_if.so quiet user != username
Run Code Online (Sandbox Code Playgroud)
如需更灵活的条件结帐:
man pam_succeed_if
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |