如何记录用户执行的命令

如何记录用户执行的命令

首先,我已经使用史努比几年了,它不是我需要的,而且检查历史文件对我来说也不是一个解决方案。

我必须授予开发人员 ROOT 访问权限才能在服务器上安装程序,并且我知道他将在退出会话后删除历史记录。

我需要检查他运行了哪些命令来保护服务器免受滥用活动的侵害。

有没有什么办法可以解决记录命令的问题?

答案1

我必须授予开发人员 ROOT 访问权限才能安装程序......

不,你不需要。
让他们写下来或者更好的是,脚本安装步骤并代表他们执行。
这称为职责分离。他们是开发人员。你是系统管理员。让他们做那些事他们是擅长(编写代码、测试等)和做那些事你是擅长(确保机器安全并高效运行等)。

...我知道他将在退出会话后删除历史记录。

这是贵公司的“标准做法”吗?如果不是,他们为什么觉得有必要这么做?

我需要检查他运行了哪些命令来保护服务器免受滥用活动的侵害。

很明显你没有相信这位开发者。
如果是这样的话,那么你不应该让他们附近任何地方这台服务器
你的工作如果你允许他们在那里安装一些可疑的东西。

如果有必要,将问题上报给管理层。

答案2

您可以使用以下方式记录用户的所有活动psacct 包裹

  • psacct软件包包含几个用于监控进程活动的实用程序,包括aclastcomm和。acctonsa

  • ac命令显示有关用户登录时间的统计信息。

  • lastcomm命令显示有关以前执行的命令的信息。

  • accton命令打开或关闭进程记帐。

  • sa命令总结了有关先前执行的命令的信息。

在 RHEL/Fedora/CentOS 上安装

# yum install psacct

在 Ubuntu/Debian 上安装

$ sudo apt-get install acct

或者

# apt-get install acct

在 RHEL 中输入以下命令来创建/va/帐户/pacct文件并启动服务

# chkconfig psacct on

# /etc/init.d/psacct start

在 Suse 中输入以下命令来创建/va/帐户/pacct文件并启动服务

# chkconfig acct on

# /etc/init.d/acct start

显示执行的命令用户

$ lastcomm [USER]

相关内容