| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux入门与提高 > 安装与配置

Ubuntu Linux系统下的Sudo命令配置实例

时间:2007-09-27 10:51:30  来源:Linux联盟收集整理  作者:
 

以下是配置过程: FFtLinux联盟

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

Sudo特点: FFtLinux联盟

1.可以限制特定的用户在特定的主机上运行指定的命令 FFtLinux联盟

2.有非常详细的日志纪录 FFtLinux联盟

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

sudo安装过程:一般系统都默认有安装 FFtLinux联盟

配置文件/etc/sudoers: FFtLinux联盟

以下简略介绍该文件的配置项(root使用visudo编辑该文件) FFtLinux联盟

第一部分:# Host alias specification(主机别名定义,用于定义多台住机) FFtLinux联盟

格式:Host_Alias SERVER = 192.168.0.1/255.255.255.0 FFtLinux联盟

Host_Alias SERVER1 = 172.17.1.1 FFtLinux联盟

第二部分:# User alias specification(用户别名定义,用于定义多组用户) FFtLinux联盟

格式:User_Alias ADMIN = test,jack,tom FFtLinux联盟

User_Alias TEST = user1 FFtLinux联盟

第三部分:# Cmnd alias specification (命令别名定义,定义用户执行命令列表) FFtLinux联盟

格式:Cmnd_Alias CAT = /bin/cat /etc/sudoers FFtLinux联盟

Cmnd_Alias Ls = /bin/ls /root FFtLinux联盟

第四部分:# Override built in defaults(增加日志纪录功能) FFtLinux联盟

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

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

解释配置实例: FFtLinux联盟

[test@redflag test]$ sudo cat /etc/sudoers FFtLinux联盟

# sudoers file. FFtLinux联盟

# FFtLinux联盟

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

# FFtLinux联盟

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

# FFtLinux联盟

# Host alias specification FFtLinux联盟

Host_Alias SERVER = 172.17.196.10 #配置主机172.17.196.10别名SERVER;Host_Alias前不能有空格 FFtLinux联盟

# User alias specification FFtLinux联盟

User_Alias ADMIN = test,jack #配置用户组ADMIN,所属用户test,jack FFtLinux联盟

# Cmnd alias specification FFtLinux联盟

Cmnd_Alias CT = /bin/cat /etc/sudoers,/bin/cat /etc/shadow FFtLinux联盟

Cmnd_Alias CA = /bin/ls /root FFtLinux联盟

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

# Defaults specification FFtLinux联盟

# User privilege specification FFtLinux联盟

root ALL=(ALL) ALL FFtLinux联盟

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

/root 命令 FFtLinux联盟

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

# Override built in defaults FFtLinux联盟

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

#配置日志纪录到主机SERVER的/var/log/sudo.log文件 FFtLinux联盟

# Uncomment to allow people in group wheel to run all commands FFtLinux联盟

# %wheel ALL=(ALL) ALL FFtLinux联盟

# Same thing without a password FFtLinux联盟

# %wheel ALL=(ALL) NOPASSWD: ALL FFtLinux联盟

# Samples FFtLinux联盟

# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom FFtLinux联盟

# %users localhost=/sbin/shutdown -h now FFtLinux联盟

日志文件: FFtLinux联盟

截取/var/log/sudo.log的一段纪录如下: FFtLinux联盟

Mar 3 15:13:14 : test : HOST=redflag : command not allowed ; TTY=pts/0 ; FFtLinux联盟

PWD=/home/test ; USER=root ; COMMAND=/bin/ls /root FFtLinux联盟

Mar 3 15:13:18 : test : HOST=redflag : command not allowed ; TTY=pts/0 ; FFtLinux联盟

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

Mar 3 15:13:56 : test : HOST=redflag : TTY=pts/0 ; PWD=/home/test ; USER=root ; FFtLinux联盟

COMMAND=/bin/cat /etc/sudoers FFtLinux联盟

Mar 3 15:14:10 : test : HOST=redflag : TTY=pts/0 ; PWD=/home/test ; USER=root ; FFtLinux联盟

COMMAND=/bin/ls /root FFtLinux联盟

Mar 3 16:27:30 : test : HOST=redflag : TTY=pts/0 ; PWD=/home/test ; USER=root ; FFtLinux联盟

COMMAND=/bin/cat /etc/sudoers FFtLinux联盟

Mar 3 16:29:47 : test : HOST=redflag : command not allowed ; TTY=pts/0 ; FFtLinux联盟

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

配置中碰到的问题: FFtLinux联盟

1、主机名配置错误导致sudo不能执行和日志纪录。 FFtLinux联盟

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

localhost.localdomain. FFtLinux联盟

解决:将其中的localhost改为真实主机名字或IP即可 FFtLinux联盟

test localhost=/sbin/cat /etc/sudoers FFtLinux联盟

Defaults@localhost log_host /var/log/sudo.log FFtLinux联盟

2、命令别名列表中命令错误导致sudo不能执行 FFtLinux联盟

错误提示:[jackyu@localhost jackyu]$ sudo cat /etc/sudoers FFtLinux联盟

Sorry, user jackyu is not allowed to execute '/bin/cat /etc/sudoers' as root on FFtLinux联盟

localhost.localdomain. FFtLinux联盟

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

执行:sudo cat -n /etc/sudoers FFtLinux联盟

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

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目更新
栏目热门