sudo提升执行权限

 

sudo

Sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具


安装sudo

# mount /dev/cdrom /media/cdrom

# rpm -ivh sudo-1.6.9pl7-3.el5.i386.rpm

安装后的配置文件为/etc/sudoers   (权限为0440,最好不要改,也不要给它可写的权限,不然后边会报错。或者给过权限后及时再改回去)

修改sudo的命令为:visudo

使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查

“e”是重新编辑,“x”是不保存退出,“Q”是退出并保存

 

sudo的日志功能不是自动的,必须由管理员开启。这样来做:

# touch /var/log/sudo

# vi /etc/syslog.conf

在syslog.conf最后面加一行(必须用tab分割开)并保存:

local2.debug                    /var/log/sudo

重启日志守候进程,

ps aux | grep syslogd

把得到的syslogd进程的PID(输出的第二列是PID)填入下面:

kill –HUP PID

这样,sudo就可以写日志了


部分常用sudo参数:

sudo -V 显示版本编号 
sudo -h 会显示版本编号及指令的使用方式说明 
sudo -l 显示出自己(执行 sudo 的使用者)的权限 
sudo -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码 
sudo -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) 
sudo -b 将要执行的指令放在背景执行 
sudo -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称 
sudo -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码) 
sudo -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell 
sudo -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )

 


使用示例:

root和wheel组的成员拥有任何权利。 如果想对一组用户进行定义,可以在组名前加上%,对其进行设置. 
root ALL = (ALL) ALL 
%wheel ALL = (ALL) ALL

FULLTIMERS可以运行任何命令在任何主机而不用输入自己的密码 
FULLTIMERS ALL = NOPASSWD: ALL

PARTTIMERS可以运行任何命令在任何主机,但是必须先验证自己的密码。 
PARTTIMERS ALL = ALL

jack可以运行任何命令在定义地CSNET(128.138.243.0, 128.138.242.0和128.138.204.0/24的子网)中,不过注意前两个不需要匹配子网掩码,而后一个必须匹配掩码。 
jack CSNETS = ALL

lisa可以运行任何命令在定义为CUNETS(128.138.0.0)的子网中主机上。 
lisa CUNETS = ALL

用户operator可以运行DUMPS,KILL,PRINTING,SHUTDOWN,HALT,REBOOT以及在/usr/oper/bin中的所有命令。 
operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\ 
/usr/oper/bin/

joe可以运行su operator命令 
joe ALL = /usr/bin/su operator

pete可以为除root之外地用户修改密码。 
pete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

bob可以在SPARC和SGI机器上和OP用户组中的root和operator一样运行如何命令。 
bob SPARC = (OP) ALL : SGI = (OP) ALL

jim可以运行任何命令在biglab网络组中。Sudo默认“+”是一个网络组地前缀。 
jim +biglab = ALL

在secretaries中地用户帮助管理打印机,并且可以运行adduser和rmuser命令。 
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

fred能够直接运行oracle或者sybase数据库。 
fred ALL = (DB) NOPASSWD: ALL

john可以在ALPHA机器上,su除了root之外地所有人。 
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

jen可以在除了SERVERS主机组的机器上运行任何命令。 
jen ALL, !SERVERS = ALL

jill可以在SERVERS上运行/usr/bin/中的除了su和shell命令之外的所有命令。 
jill SERVERS = /usr/bin/, !SU, !SHELLS

steve可以作为普通用户运行在CSNETS主机上的/usr/local/op_commands/内的任何命令。 
steve CSNETS = (operator) /usr/local/op_commands/

matt可以在他的个人工作站上运行kill命令。 
matt valkyrie = KILL

WEBMASTERS用户组中的用户可以以www的用户名运行任何命令或者可以su www。 
WEBMASTERS www = (www) ALL, (root) /usr/bin/su www

任何用户可以mount或者umount一个cd-rom在CDROM主机上,而不用输入密码。 
ALL CDROM = NOPASSWD: /sbin/umount /CDROM,\ 
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM

本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/834884如需转载请自行联系原作者


yangzhimingg

上一篇:EMC与AT&T联手推出新型云存储服务


下一篇:ldap sudo权限