2007年12月21日星期五

sudo的简单配置

sudo的简单配置

sudo的配置文件是/etc/sudoers,它有专门的编辑工具visudo,用su切换到root用户,然后执行这个命令。
对于VI,对我这样的初学者,只要记住几个快捷键就可以了:光标移动,j上一行,k下一行,h向左,l向右。i切换到编辑状态,然后再配合End、Delete、和BackSpace键,完成这个位置的编辑,Esc退出编辑状态;移动光标到下一个位置,再切换到编辑状态,再输入,直到修改完成。然后输入冒号“:”,最下面一行会改为接受命令状态,输入w,保存,q退出。
执行visudo以后,将光标下移,可以看到一行:
root ALL=(ALL) ALL
这个命令定义了root用户的sudo权限,我们要添加的配置也具有相应的命令格式即
user host=[(Runas)] [NOPASSWD] commands
被授权用户 主机=[目标用户][不需密码] 命令
即“被授权用户”可以在“主机”上以“目标用户”的权限执行“命令”。方括号内是两个可选参数,目标用户缺省为root。命令必须用绝对路径,之间用","分开。例如
liuxq localhost=/sbin/poweroff
表示用户liuxq可以在本机上以root的权限执行"sudo /sbin/poweroff"命令,而不需要root密码(需要liuxq的用户密码)。
如果加上NOPASSWD,则表示不需要输入密码:
liuxq localhost=NOPASSWD: /sbin/poweroff

基本的定义方法就是这样,如果需要为不同的用户、不同的主机配置不同的命令权限,这样逐条配置显然太繁琐,所以这个配置文件中引入了别名Alias的功能,在配置文件的开头部分,有四个别名类型:
User_Alias; Host_Alias; Runas_Alias; Cmnd_Alias;
分别对应该命令形式中的四个部分。别名实际上定义了相同类型的对象的一个集合。例如
User_Alias LIU=liuxq,lxq
定义了一个LIU集合,其中有成员liuxq和lxq,用LIU代替前面命令中的liuxq,则用户liuxq和lxq都可以执行sudo /sbin/poweroff命令。
其它别名的定义也是类似的。这里就不多啰嗦了,推荐看看Linux 系统中的超级权限的控制,讲得比较详细。

没有评论: