我在由 linode 托管的 vps 上运行了一个非常干净的全新 CentOS 5.3。安装新操作系统后,我应用了yum update
最新的补丁。然后我yum install sudo
安装了 sudo(我很惊讶它没有默认安装)。我编辑了 sudoers 文件,一切顺利。我以普通用户身份通过 ssh 登录,并在需要执行需要 root 权限的操作时使用 sudo,我认为这是一种很好的做法,因为它让我意识到在发出这些命令时应该格外小心。问题是每当我发出 sudo 命令时,我都会收到一条错误消息:
audit_log_user_command():连接被拒绝
命令已执行,但没有记录该命令,证据如下:
grep sudo /var/log/messages
仅返回一行引用 yum install。
答案1
所提到的错误是由于 CentOS 默认没有auditd
编译到内核中。该错误纯粹是一个外观故障,可以安全地忽略。
我认为可以通过编译新内核(> 2.6.23)并选择“CONFIG_AUDIT=y”来启用 auditd 支持,从而消除错误。此外,更新到较新版本可能也sudo
能解决问题,但由于我无法访问任何 CentOS 机器,所以 YMMV。
答案2
在 CentOS 上,你应该检查 /var/log/secure 而不是 /var/log/messages,并确保 auditd 已启动:
# start auditd
/etc/init.d/auditd start
# configure to start on boot
/sbin/chkconfig --level 2345 auditd on
答案3
这不能解决这个问题,但你应该使用
su -
我发现它比在每个命令前输入 sudo 更不烦人,而且它应该被记录下来。