ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sudo的配置

sudo的配置

原创 Linux操作系统 作者:crystal_ocean 时间:2014-02-25 16:55:56 0 删除 编辑
       在操作系统下,我们经常会遇到让普通用户拥有部分root权限的情况,那这个时候我们要怎么做呢?
        
       方法一:知道root密码,然 su - root,切换到root用户下,来执行命令;方法二:将该用户加入到root组里,usermod -g  root  user01.然而这里两种方法非常不安全,会将root权限无限制的使用下去,在工作中这两种方法不可取,一般推荐使用sudo让普通用户来执行root命令。

      sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部root命令的工具。使用sudo普通用户不用知道root密码即可获得权限,首先root用户将普通用户的账号、可以执行的特定命令等信息登记在配置文件/etc/sudoers,即完成了对该普通用户的授权。

     
配置sudo:sudo的配置文件是/etc/sudoers,推荐使用visudo命令,它会帮助我们校验文件配置是否正确。

     1、授权普通用户拥有root所有权限
           [root@target ~]# visudo
            ## Allow root to run any commands anywhere
             root    ALL=(ALL)       ALL                            //这是系统的缺省配置,现在在下面增加一条授权ocean用户
            ocean  ALL=(ALL)       ALL                           //这样普通用户ocean就能够执行root的所有权限了

           ocean用户可以直接切换到root用户,而不用知道root密码,
           [ocean@target ~]$ sudo su -                      
            [root@target ~]# 
    
     2、授权普通用户拥有root部分权限
          ocean为普通用户,需要修改系统时间,操作如下:
          [ocean@target ~]$ date 022510082014
           date: cannot set date: Operation not permitted              //说明普通用户没有修改系统时间的权限,需要授权。
           Tue Feb 25 10:08:00 PST 2014 

           配置sudo
           [root@target ~]# visudo 
            ocean  ALL=/bin/date                        //添加一行授予ocean用户执行/bin/date的权限

           [ocean@target ~]$ sudo date 022511082014
            [sudo] password for ocean:                           //输入ocean用户的密码来确认执行
            Tue Feb 25 11:08:00 PST 2014                    //时间修改成功
             
            取消交互,不输入密码,命令直接执行:
            [root@target ~]# visudo 
              ocean  ALL=NOPASSWD:/bin/date                 
            [ocean@target ~]$ sudo date 022512082014
             Tue Feb 25 12:08:00 PST 2014                 //时间直接修改了

         3.授予普通用户kill进程、重启service的权限
            
              1)查看kill、service命令的绝对路径
                    [root@target ~]# which kill
                        /bin/kill
                     [root@target ~]# which service
                        /sbin/service
 
              2)配置sudo
                    [root@target ~]# visudo
                      ocean  ALL=NOPASSWD:/bin/date,/bin/kill,/sbin/service
              
              3)查看进程信息
                    [ocean@target ~]$ ps -ef
                    UID        PID    PPID  C  STIME   TTY          TIME          CMD
                    oracle    9118  9117  0 12:25    pts/2        00:00:00    sqlplus   as sysdba
                    
                    执行kill
                    [ocean@target ~]$ sudo kill -9 9118
                     [ocean@target ~]$ 
                    
                    执行结果
                     SQL> Killed
                     [oracle@target ~]$ 

              4)重启网络服务
                    [ocean@target ~]$ sudo  /sbin/service   network  restart                        //注意要使用命令的绝对路径
                      Shutting down interface eth0:                              [  OK  ]
                      Shutting down loopback interface:                          [  OK  ]
                      Bringing up loopback interface:                            [  OK  ]
                      Bringing up interface eth0:                                [  OK  ]


           关于sudo的配置,还有好多知识点,在此先总结这些。
            

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29457434/viewspace-1089081/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-23

  • 博文量
    13
  • 访问量
    90580