Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103739013
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-24 21:55:05

作者: 宇文 出处:51CTO.com 
 

七、Sudo的日志功能

前面已经说过,sudo能够记录各用户都运行了哪些命令。但是,这些需要对sudo 和syslogd 进行适当的配置。为此,我们首先要在/var/log目录中创建一个日志文件,还必须对syslog.conf进行相应的配置,让它记录sudo 命令。配置sudo 日志功能的具体步骤如下所示:

⒈ 登录为root 用户,然后在/var/log/目录下创建一个sudo 日志文件。具体命令如下所示:

touch /var/log/sudo

⒉ 之后,您必须在syslog.conf 文件中添加相应的行来命令它将记录放到sudo的日志文件。我们可以用下列命令来打开syslog.conf:

vi /etc/syslog.conf

⒊ 将下面一行命令放到syslog.conf文件的末尾。操作时,我们可以通过按下i键来插入文字。要注意,下面的空格必须使用TAB 键,而不是空格键。

local2.debug     /var/log/sudo

⒋ 这个syslog.conf条目会将所有成功和不成功的sudo 命令都记录到文件/var/log/sudo中。您还可以通过用网络主机代替本机目录来让日志记录到一个网络主机上。syslog.conf文件如图2所示。


图2 编辑syslog.conf文件进行日志记录

⒌ 按下ESC写入并退出文件,然后键入以下命令:

:wq

⒍ 因为syslog.conf文件已经修改,所以必须重新启动syslogd 。要向syslogd 发送HUP信号,必须首先知道syslogd 进程标识符,为此键入以下命令来获取syslogd PID :

ps aux | grep syslogd

第二栏表示显示PID号码,最后一栏表示显示PID 对应的进程。

⒎ 要重启syslogd ,从上面命令输出中找出syslogdPID ,然后键入以下命令:

kill –HUP [PID NUMBER]

⒏ 因为我们想为用户bob建立日志条目,所以作为用户bob登录。

⒐ 以用户bob的身份登录后,键入以下ifconfig命令:

sudo –l
sudo /sbin/ifconfig eth0 down
sudo /sbin/ifconfig eth0 up

⒑ 利用kill 命令重新启动httpd进程(或者其它进程),命令如下所示:

ps aux | grep httpd

⒒ 从以上命令的输出中找出Apache (httpd )PID ,并输入下列命令:

sudo kill –HUP [PID NUMBER]

⒓ 现在,将以用户bob的身份列出root用户目录,具体命令如下所示:

sudo ls /root

⒔ 作为root 用户登录,查看一下sudo 日志文件。bob 输入的全部sudo 命令都被记下来了,如下所示:

May 18 21:10:18 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=list
May 18 21:10:28 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 down
May 18 21:10:50 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 up
May 18 21:10:60 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/bin/ls /root

⒕ 您可以记录任何root命令,方法很简单,只要在这些命令之前加上sudo 即可。例如,要记录下所有作为root使用的命令,可以像下面这样做:

sudo useradd susan
sudo passwd susan
sudo vi /hosts

⒖ 要想访问和查看sudo 日志文件,我们可以使用下列命令:

sudo cat /var/log/sudo

Root用户的所有输入都将记录在案,包括刚刚输入的cat 命令。如下所示:

May 18 21:10:18 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=list
May 18 21:10:28 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 down
May 18 21:10:50 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 up
May 18 21:10:60 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/bin/ls /root
May 18 21:30:22 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/usr/sbin/useradd susan
May 18 21:30:56 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/usr/bin/passwd susan
May 18 21:31:18 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/bin/vi /hosts
May 18 21:31:30 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/bin/vi /etc/hosts
May 18 21:32:11 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/bin/cat /var/log/sudo

如您所见,sudo 对于控制和审计root用户的访问权限是极其有益的。它使得系统管理员可以将root用户的系统管理任务分配给其他人,而无需给予他们root口令。管理员也可以根据每个用户实际所需的root访问权限来定制系统访问权限,从而达到权限最小化的目标。

八、结束语

Sudo是一款实用的安全管理软件,通过它对超级用户权限进行有效的控制和审计能有效的提高系统的安全性。本文主要讨论了sudo的sudoers文件的用户规定方面,如果您想了解其他方面的话,上的sudo man手册会对您有所帮助。

阅读(249) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~