Jos*_* R. 20 shutdown ssh pam ubuntu mandriva
我正在管理一个网络环境,昨天我遇到了一个有趣的情况。当普通用户要求主机关闭时,如果其他用户在本地登录,则主机拒绝这样做。但是,当其他用户通过 SSH 登录时,情况并非如此。如果一个用户在本地登录并且一个用户通过 SSH 登录,并且本地登录的用户尝试关闭它甚至没有警告就成功了,并且另一个用户的 SSH 连接突然终止。我的问题是,有没有办法像针对本地用户的政策那样防止这种情况发生?我已经查看了手册页,sshd_config
但找不到任何似乎相关的内容。
编辑(附加信息。):
网络上有 4 个操作系统:Mandriva 2009、Mandriva 2010.2、Mandriva 2011 和 Ubuntu 11.04。我所指的具体情况是 SSH 用户位于 Mandriva 2009 主机上,本地用户位于 Mandriva 2011 主机上。
Mandriva 2009 主机使用 GNOME 2.28 环境,2010.2 主机使用 GNOME 2.32,2011 主机使用 KDE Plasma,Ubuntu 11.04 主机使用 Unity。
更新
正如我在这个问题中所指出的,我查看了下面的polkit
操作/usr/share/polkit-1/actions/
并发现(在文件中org.freedesktop.consolekit.policy
)一个称为org.freedesktop.consolekit.system.stop-multiple-users
抛出消息的操作
System policy prevents stopping the system when other users are logged in
Run Code Online (Sandbox Code Playgroud)
我在想(由于org.freedesktop.*
命名约定)这是通过 D-BUS 发送到 DM 的某种信号。我想如果我能找出触发这个polkit
动作的信号,我应该能够修改它的行为。有任何想法吗?
更新 2
我今天尝试了一个小实验,它给了我非常奇怪的结果。我尝试通过 SSH 登录到一个盒子,并确保没有其他用户登录到任何 VT。如果我Shutdown
从 GDM 的“操作”菜单中选择,我会收到期待已久的策略消息,通知我没有身份验证是不可能的,因为其他用户已登录。但是,如果我使用 GDM 本地登录并选择要从 GNOME 的菜单中关闭该框,SSH 会话会像以前一样被破坏。这怎么可能?shutdown
从 GDM发起请求时的行为与从gnome-session
. 这是否告诉任何人可以帮助我解决问题的任何信息?
netstat
我会编写一个小程序,通过和/或 来检查任何活动的 SSH 连接ps
。将其放在shutdown
命令的位置。
如果没有其他人使用该机器,请shutdown
在用户尝试使用时致电。如果有人正在使用该机器,只需警告发出该shutdown
命令的用户即可。
.ssh
Netstat 会给你这样的输出,并且很容易在输出中查找。
netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 52 10.5.6.xx.ssh 10.6.6.yy.51400 ESTABLISHED
tcp 0 0 *.ssh *.* LISTEN
udp 0 0 *.syslog *.*
Run Code Online (Sandbox Code Playgroud)
ps
会给你这样的输出,但这有点困难,因为你必须确保不担心出站连接。Netstat
也许是正确的方法。
ps -e | grep ssh
10084366 ? 00:00:07 /opt/sbin/sshd
282647 ? 00:00:00 /opt/sbin/sshd
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4203 次 |
最近记录: |