Chinaunix首页 | 论坛 | 博客
  • 博客访问: 466042
  • 博文数量: 150
  • 博客积分: 2706
  • 博客等级: 少校
  • 技术积分: 1200
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-09 11:41
文章分类

全部博文(150)

文章存档

2012年(7)

2011年(6)

2010年(68)

2009年(69)

我的朋友

分类: LINUX

2009-11-09 14:53:58

visudo编辑sudoers配置文件,不过也可以直接通过修改sudoers文件实现,不过编辑之前最好看一下它的sample.sudoers文件,里面有一个相当详细的例子可以参考。    
空格部分用tab键代替
  #第一部分:用户定义,将用户分为FULLTIMERS、PARTTIMERS和WEBMASTERS三类。    
  User_Alias   FULLTIMERS   =   millert,   mikef,   dowdy    
  User_Alias   PARTTIMERS   =   bostley,   jwfox,   crawl    
  User_Alias   WEBMASTERS   =   will,   wendy,   wim    
  #第二部分,将操作类型分类。    
  Runas_Alias   OP   =   root,   operator    
  Runas_Alias   DB   =   oracle,   sybase    
  #第三部分,将主机分类。这些都是随便分得,目的是为了更好地管理。    
  Host_Alias   SPARC   =   bigtime,   eclipse,   moet,   anchor   :    
  SGI   =   grolsch,   dandelion,   black   :    
  ALPHA   =   widget,   thalamus,   foobar   :    
  HPPA   =   boa,   nag,   python    
  Host_Alias   CUNETS   =   128.138.0.0/255.255.0.0    
  Host_Alias   CSNETS   =   128.138.243.0,   128.138.204.0/24,   128.138.242.0    
  Host_Alias   SERVERS   =   master,   mail,   www,   ns    
  Host_Alias   CDROM   =   orion,   perseus,   hercules    
  #第四部分,定义命令和命令地路径。    
  Cmnd_Alias   DUMPS   =   /usr/bin/mt,   /usr/sbin/dump,   /usr/sbin/rdump,    
  /usr/sbin/restore,   /usr/sbin/rrestore    
  Cmnd_Alias   KILL   =   /usr/bin/kill    
  Cmnd_Alias   PRINTING   =   /usr/sbin/lpc,   /usr/bin/lprm    
  Cmnd_Alias   SHUTDOWN   =   /usr/sbin/shutdown    
  Cmnd_Alias   HALT   =   /usr/sbin/halt,   /usr/sbin/fasthalt    
  Cmnd_Alias   REBOOT   =   /usr/sbin/reboot,   /usr/sbin/fastboot    
  Cmnd_Alias   SHELLS   =   /usr/bin/sh,   /usr/bin/csh,   /usr/bin/ksh,    
  /usr/local/bin/tcsh,   /usr/bin/rsh,    
  /usr/local/bin/zsh    
  Cmnd_Alias   SU   =   /usr/bin/su    
 #这里是针对不同的用户采用不同地策略,比如默认所有的syslog直接通过auth   输出。FULLTIMERS组不用看到lecture(第一次运行时产生的消息);用户millert使用sudo时不用输入密码;以及logfile的路径在/var/log/sudo.log而且每一行日志中必须包括年。    
  Defaults   syslog=auth    
  Defaults:FULLTIMERS   !lecture    
  Defaults:millert   !authenticate    
     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也一样。
阅读(6443) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~