有没有办法可以检查 Linux 组的创建和/或修改日期?如果我可以拉出最后修改该组的用户就更好了。
答案1
假设我们在这里谈论的是本地文件(不是 LDAP)并且没有其他审计软件,那么您几乎只能看到 /etc/group 的元数据;您可以看到文件最后修改的时间,但看不到受影响的人或组。
答案2
只需查看 /var/log/secure,我创建并修改了一个组作为示例。请注意,该命令可能与上次打开的会话无关,因此很难判断是谁实际执行了该命令: 是的,我的机器名为 aladdin - 那又怎么样?
Aug 30 20:38:09 aladdin su: pam_unix(su-l:session): session opened for user root by james(uid=0)
Aug 30 20:38:15 aladdin groupadd[2442]: group added to /etc/group: name=test, GID=501
Aug 30 20:38:15 aladdin groupadd[2442]: group added to /etc/gshadow: name=test
Aug 30 20:38:15 aladdin groupadd[2442]: new group: name=test, GID=501
Aug 30 20:39:03 aladdin groupmod[2450]: group changed in /etc/group (group test/501, new gid: 502)
Aug 30 20:39:03 aladdin groupmod[2450]: group changed in /etc/passwd (group test/501, new gid: 502)
答案3
您可以使用lastcomm
为此,您必须acct
启用该功能,方法是将以下内容添加到您的初始化脚本中:
# Turn process accounting on.
if [ -x /sbin/accton ]
then
/sbin/accton /var/log/pacct
echo "Process accounting turned on."
fi
要创建会计记录文件:
touch /var/log/pacct
chown root /var/log/pacct
chmod 0644 /var/log/pacct
我建议您做的一件事是更改您的groupadd
和groupdel
,将其移动到其他地方并创建 2 个 bash 脚本,用于存储召唤它的用户、时间和命令,然后它将调用实际脚本来创建组或删除它们。
一个小示例:mv /usr/sbin/groupadd /usr/sbin/new_groupadd
现在创建一个/usr/sbin/groupadd
具有以下内容的新文件(完成后不要忘记对其进行 chmod):
#!/bin/bash
echo "`date` - $USER - /usr/sbin/new_groupadd $@" >> /var/log/group_log
/usr/sbin/new_groupadd $@
创建记录文件:
touch /var/log/groupadd_log
chown root /var/log/groupadd_log
chmod 0644 /var/log/groupadd_log
James Lawrie 指出,查看 /var/log/secure 及其所有轮换文件(如果条目已经太旧)可以了解其最后更改的时间,但如果您授予除 root 之外的其他用户添加组的权限,它将不会列出。