手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

用sudo来让一个用户只能关机:)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

Defaults syslog=auth
Defaults:FULLTIMERS !lecture
Defaults:millert !authenticate
Defaults@SERVERS log_year, logfile=/var/log/sudo.log
#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

10) 我的sudoers 配置文档是这样的
User_Alias ADMIN = root,username
Runas_Alias OP = username
Cmnd_Alias IPCHAINS = /usr/bin/ipchains
Cmnd_Alias EDIT = /bin/vi
Cmnd_Alias SHUTDOWN =/sbin/shutdown
Cmnd_Alias HALT = /usr/bin/halt
Cmnd_Alias DEL = /bin/rm
Cmnd_Alias COPY= /bin/cp
Cmnd_Alias SU=/bin/su
Cmnd_Alias SLEEP= /bin/sleep
Cmnd_Alias REBOOT = /usr/bin/reboot
Cmnd_Alias CHMOD=/bin/chmod
Cmnd_Alias HWCLOCK=/sbin/hwclock
Cmnd_Alias TRACET=/usr/sbin/traceroute
Cmnd_Alias VIPW = /sbin/route
Cmnd_Alias PASSWD=/usr/bin/passwd
Cmnd_Alias IPSEC=/usr/local/sbin/ipsec
Cmnd_Alias ARP=/sbin/arp
Cmnd_Alias HOSTNAME=/bin/hostname
root ALL = (ALL) ALL
ADMIN SERVERNAME=(ALL) NOPASSWD:HOSTNAME
ADMIN SERVERNAME=(ALL) NOPASSWD:ARP
ADMIN SERVERNAME=(ALL) NOPASSWD:HWCLOCK
ADMIN SERVERNAME=(ALL) NOPASSWD:IPCHAINS
ADMIN SERVERNAME=(ALL) NOPASSWD:HALT
ADMIN SERVERNAME=(ALL) NOPASSWD:SHUTDOWN
ADMIN SERVERNAME=(ALL) NOPASSWD:REBOOT
ADMIN SERVERNAME=(ALL) NOPASSWD:CHMOD
ADMIN SERVERNAME=(ALL) NOPASSWD:IPSEC
ADMIN SERVERNAME=(ALL) NOPASSWD:PASSWD
ADMIN SERVERNAME=(ALL) NOPASSWD:TRACET
ADMIN SERVERNAME=(ALL) NOPASSWD:DEL
ADMIN SERVERNAME=(ALL) NOPASSWD:COPY
ADMIN SERVERNAME=(ALL) NOPASSWD:SU
ADMIN SERVERNAME=(ALL) NOPASSWD:EDIT
ADMIN SERVERNAME=(ALL) NOPASSWD:SLEEP
ADMIN SERVERNAME=(ALL) NOPASSWD:ROUTE

sudo的使用相对地简单,只要将sudo和sudoers命令拷贝到相应的路径即可。Sudo命令能够rename成您所喜欢的名字,sudoers也相同。
好了,就先写到这里吧,由于时间仓促,错误在所难免,我的mail是在ilinux@citiz.net,
欢迎来信指正探讨。

这位大哥作的比较复杂,我只是要一个能关机的用户就行了,所以只是用/sbin/visudo打开/etc/sudoers文档加入了:

guanji ALL = NOPASSWD: /sbin/halt -p
这样guanji这个用户就只能执行sudo halt -p来关机了,呵呵,急死他!

更有点问题就是发现这个用户还能够自己建文档,删除自己的文档,能够看比如/etc/rc.conf,但是不能修改而已,这离我的需要更有一些距离,我现在希望的是他只能登陆以后输入:sudo halt -p,除了这个什么都不行,连ls都不行,不知道能不能实现,那位大虾知道能够告诉我一声,谢谢!


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!