Chinaunix首页 | 论坛 | 博客
  • 博客访问: 575968
  • 博文数量: 836
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 4995
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 16:55
文章分类

全部博文(836)

文章存档

2008年(836)

我的朋友

分类: LINUX

2008-08-22 17:41:25

 

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

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

Sudo特点:

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

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

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

sudo安装过程:

编者注:一般系统都默认有安装

配置文件/etc/sudoers:

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

第一部分:

#Hostaliasspecification(主机别名定义,用于定义多台住机)

格式:Host_AliasSERVER=192.168.0.1/255.255.255.0

Host_AliasSERVER1=172.17.1.1

第二部分:

#Useraliasspecification(用户别名定义,用于定义多组用户)

格式:User_AliasADMIN=test,jack,tom

User_AliasTEST=user1

第三部分:

#Cmndaliasspecification(命令别名定义,定义用户执行命令列表)

格式:Cmnd_AliasCAT=/bin/cat/etc/sudoers

Cmnd_AliasLs=/bin/ls/root

第四部分:

#Overridebuiltindefaults(增加日志纪录功能)

Defaults@SERVERlog_host,logfile=/var/log/sudo.log

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

解释配置实例:

[test@redflagtest]$sudocat/etc/sudoers

#sudoersfile.

#

#ThisfileMUSTbeeditedwiththe''visudo''commandasroot.

#

#Seethesudoersmanpageforthedetailsonhowtowriteasudoersfile.

#

#Hostaliasspecification

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

#Useraliasspecification

User_AliasADMIN=test,jack#配置用户组ADMIN,所属用户test,jack

#Cmndaliasspecification

Cmnd_AliasCT=/bin/cat/etc/sudoers,/bin/cat/etc/shadow

Cmnd_AliasCA=/bin/ls/root

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

#Defaultsspecification

#Userprivilegespecification

rootALL=(ALL)ALL

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

/root命令

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

#Overridebuiltindefaults

Defaults@SERVERlog_host,logfile=/var/log/sudo.log

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

#Uncommenttoallowpeopleingroupwheeltorunallcommands

#%wheelALL=(ALL)ALL

#Samethingwithoutapassword

#%wheelALL=(ALL)NOPASSWD:ALL

#Samples

#%usersALL=/sbin/mount/cdrom,/sbin/umount/cdrom

#%userslocalhost=/sbin/shutdown-hnow

日志文件:

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

Mar315:13:14:test:HOST=redflag:commandnotallowed;TTY=pts/0;

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

Mar315:13:18:test:HOST=redflag:commandnotallowed;TTY=pts/0;

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

Mar315:13:56:test:HOST=redflag:TTY=pts/0;PWD=/home/test;USER=root;

COMMAND=/bin/cat/etc/sudoers

Mar315:14:10:test:HOST=redflag:TTY=pts/0;PWD=/home/test;USER=root;

COMMAND=/bin/ls/root

Mar316:27:30:test:HOST=redflag:TTY=pts/0;PWD=/home/test;USER=root;

COMMAND=/bin/cat/etc/sudoers

Mar316:29:47:test:HOST=redflag:commandnotallowed;TTY=pts/0;

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

配置中碰到的问题:

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

错误提示:Sorry,usertestisnotallowedtoexecute''/bin/cat/etc/sudoers''asrooton

localhost.localdomain.

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

testlocalhost=/sbin/cat/etc/sudoers

Defaults@localhostlog_host/var/log/sudo.log

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

错误提示:[jackyu@localhostjackyu]$sudocat/etc/sudoers

Sorry,userjackyuisnotallowedtoexecute''/bin/cat/etc/sudoers''asrooton

localhost.localdomain.

解决:由于在Cmndalias里定义的时候命令书写有误(Cmnd_AliasCAT=/bin/cat-n/etc/sudoers).

执行:sudocat-n/etc/sudoers


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