长话短说: 为什么在单个服务器上谁命令不提供发起与服务器的连接的 IP 地址和用户名的输出
问题: 我有几台具有相同操作系统 Dist (RHEL 5.11) 的 Linux 服务器。其中一台服务器是很久以前由工作人员配置的,但现在不再可用。
我试图对连接到单个用户的用户实施一种历史审核
su - <powerful_user>
我们没有办法阻止他们那样工作。但我们确实想审核他们的 IP 和初始用户名。我找到了某人的解决方案: 解决方案
而且效果很好!问题是有一个服务器(最重要的一个)不允许在执行操作时获取该信息
su - <powerful_user>
who -m
who -m 显示初始用户(连接并使用 su 命令的用户)以及打开该会话的工作站的 IP 地址。该服务器不显示该信息。相反,在执行 su 之后 - 它显示当前用户,而不是启动会话的用户。
我不知道是什么原因造成的。但这就是我所做的:
- 为强大的用户编写的登录脚本 -> 它们都是一样的。
环境变量 -> 我发现工作服务器即使在 su - 之后也会自动设置此变量:
SSH_ASKPASS
SSH_客户端
SSH_CONNECTION
SSH_TTY
但在有问题的服务器上,它没有被转发到由 su - 打开的其他会话。
- 看到它主要是 ssh 变量后,我检查了 ssh 配置,它与所有其他服务器相同。
基本上我不清楚为什么该服务器的行为不同。
答案1
从文件中可以看出,/etc/pam.d/su
只有组成员才wheel
有权使用su
,因为文件中有行:
auth required pam_wheel.so use_uid
需要将所有用户添加到该wheel
组中:
usermod -G wheel <powerful_user>
su
以相同的方式添加您希望允许使用的每个用户。之后重新启动服务器以应用更改。