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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-03 21:15:55

 

以下是配置过程:


Sudo 是一个允许系统管理员授权让普通用戶执行部分或全部root命令的工具。这樣可以減少root登陆提高系统安全性。


Sudo特点:


1.可以限制特定的用戶在特定的主机上执行指定的命令

2.有非常详细的日誌纪錄

3.sudo使用时间戳档案来执行类似"检票"系统。当用戶使用sudo並且输入密码后,用戶预设获得了一张存活期为5分钟的票(这个数值可以在编译的时候更改),超过5分钟不用的话就需要重新输入密码才能使用


sudo安装过程:一般系统都预设有安装


配置档案/etc/sudoers:


以下简略介绍该档案的配置项(root使用visudo编辑该档案)


第一部分:# Host alias specification(主机別名定义,用於定义多台住机)

格式:Host_Alias SERVER = 192.168.0.1/255.255.255.0

Host_Alias SERVER1 = 172.17.1.1


第二部分:# User alias specification(用戶別名定义,用於定义多组用戶)


格式:User_Alias ADMIN = test,jack,tom

User_Alias TEST = user1


第三部分:# Cmnd alias specification (命令別名定义,定义用戶执行命令列表)


格式:Cmnd_Alias CAT = /bin/cat /etc/sudoers

Cmnd_Alias Ls = /bin/ls /root


第四部分:# Override built in defaults(增加日誌纪錄功能)


Defaults@SERVER log_host, logfile=/var/log/sudo.log

#为host alise里的主机增加一个附加日誌,如果这个日誌需要保存多年,则可使用log_year,这樣在日誌纪錄的时候将纪錄详细的年份


解释配置实例:


[test@ubuntu test]$ sudo cat /etc/sudoers

# sudoers file.

#

# This file MUST be edited with the 'visudo' command as root.

#

# See the sudoers man page for the details on how to write a sudoers file.

#


# Host alias specification

Host_Alias SERVER = 172.17.196.10 #配置主机172.17.196.10別名SERVER;Host_Alias前不能有空格

# User alias specification

User_Alias ADMIN = test,jack #配置用戶组ADMIN,所属用戶test,jack

# Cmnd alias specification

Cmnd_Alias CT = /bin/cat /etc/sudoers,/bin/cat /etc/shadow

Cmnd_Alias CA = /bin/ls /root

#配置命令別名CT,可以执行cat etc/sudoers,cat /etc/shadow 命令,CA可执行 la /root命令


# Defaults specification


# User privilege specification

root ALL=(ALL) ALL

test SERVER=CT,CA #配置test用戶可以在SERVER执行cat /etc/sudoers,/cat /etc/shadow,ls


/root 命令

# test ALL=(ALL) NOPASSWD: ALL(配置test可以执行所有的root命令,且使用sudo时不需要输入密码)


# Override built in defaults

Defaults@SERVER log_host, logfile=/var/log/sudo.log

#配置日誌纪錄到主机SERVER的/var/log/sudo.log文件


# Uncomment to allow people in group wheel to run all commands

# %wheel ALL=(ALL) ALL


# Same thing without a password

# %wheel ALL=(ALL) NOPASSWD: ALL


# Samples

# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom

# %users localhost=/sbin/shutdown -h now



日誌档案:


截取/var/log/sudo.log的一段纪錄如下:


Mar 3 15:13:14 : test : HOST=ubuntu : command not allowed ; TTY=pts/0 ;

PWD=/home/test ; USER=root ; COMMAND=/bin/ls /root

Mar 3 15:13:18 : test : HOST=ubuntu : command not allowed ; TTY=pts/0 ;

PWD=/home/test ; USER=root ; COMMAND=/bin/su -

Mar 3 15:13:56 : test : HOST=ubuntu : TTY=pts/0 ; PWD=/home/test ; USER=root ;

COMMAND=/bin/cat /etc/sudoers

Mar 3 15:14:10 : test : HOST=ubuntu : TTY=pts/0 ; PWD=/home/test ; USER=root ;

COMMAND=/bin/ls /root

Mar 3 16:27:30 : test : HOST=ubuntu : TTY=pts/0 ; PWD=/home/test ; USER=root ;

COMMAND=/bin/cat /etc/sudoers

Mar 3 16:29:47 : test : HOST=ubuntu : command not allowed ; TTY=pts/0 ;

PWD=/home/test ; USER=root ; COMMAND=/bin/cat /var/log/sudo.log


配置中碰到的问题:


1、主机名配置错误导致sudo不能执行和日誌纪錄。


错误提示:Sorry, user test is not allowed to execute ′/bin/cat /etc/sudoers′ as root on


localhost.localdomain.


解決:将其中的localhost改为真实主机名字或IP即可


test localhost=/sbin/cat /etc/sudoers

Defaults@localhost log_host /var/log/sudo.log


2、命令別名列表中命令错误导致sudo不能执行

错误提示:[tomyu@localhost tomyu]$ sudo cat /etc/sudoers

Sorry, user tomyu is not allowed to execute ′/bin/cat /etc/sudoers′ as root on


localhost.localdomain.


解決:由於在Cmnd alias里定义的时候命令书写有误(Cmnd_Alias CAT = /bin/cat -n /etc/sudoers).

执行:sudo cat -n /etc/sudoers

[注]:不管在Cmnd alias里还是在# User privilege specification中指定命令,使用sudo执行时必须一摸一樣,否则将出错。比如在Cmnd alias里指定某用戶职能执行 /bin/cat /etc/sudoers,如果该用戶登錄后执行 sudo /cat -n /etc/sudoers将会出错!




出处:南方Linux
阅读(613) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~