linux – 需要一种技术来强制系统管理员记录访问prod服务器的原因

我的公司要求用户登录到生产服务器时,必须记录该用户登录的原因以及用户打算进行的更改.我的团队希望这样做,但很容易忘记.我想帮助他们记住.我考虑过一个问题,但想要一些更强的东西.

我的第一个想法是将用户的shell更改为执行类似的脚本

vim /logs/logindate.txt 
bash -l

有更好或更标准的技术吗?

注意:这个想法是这些用户是系统管理员,并希望在不破坏系统的情况下进行日志条目 – 他们经常忘记这样做.所以,如果他们可以控制它,那么……我们假设他们不会.

解决方法

查看 pam_exec.so.您可以在PAM的system-auth的会话界面中登录时运行脚本.在用户获取shell之前,脚本以root身份运行,因此它可能无法使用read捕获输入?但是,您可以尝试使用read从用户那里获取原因并使用logger语句将其记录到syslog中. (我在下面省略了,但您可以捕获CTRL C以防止任何人无故退出.)$PAM_USER将设置为登录的人,因此您可以将其包含在logger语句中.

例:

在/etc/pam.d/system-auth中的会话顶部:

session required pam_exec.so /usr/local/sbin/getreason

和/usr/local / sbin / getreason:

#!/bin/bash
read -p "Reason for logging into production: " reason
logger -t $(basename $0) "$PAM_USER logged in with reason: ${reason}"

如果这不能很好地起作用,请道歉.我没有测试它,但最近做了类似的事情. (它没有捕获输入.)

编辑:我对此的思考越多,我就越不认为它会因为它运行的阶段而起作用.将$PAM_USER替换为$(logname)后,相同的getreason脚本应该可以工作,但可能需要在/ etc / profile中执行. (首先测试交互式shell.)

我会留下两个选项,因为它至少应该让你思考正确的方向,如果没有别的.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...