Linux:检查群组创建日期

Linux:检查群组创建日期

有没有办法可以检查 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

我建议您做的一件事是更改您的groupaddgroupdel,将其移动到其他地方并创建 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 之外的其他用户添加组的权限,它将不会列出。

相关内容