linux如何把普通用户添加到sudo组

sudo原理:运行命令时,系统检查/etc/sudoers 配置文件,看这个用户是否有执行sudo的权限,如果有权限,系统要求输入用户自己的密码,如果密码输入正确,系统会以root身份运行 passwd xx命令。

 

一,直接修改配置文件(不推荐

1. 先cd到/etc/sudoers目录下 

2. 由于sudoers文件为只读权限,所以需要添加写入权限,chmod u+w sudoers 

3. vim sudoers 

4. 找到root ALL = (ALL) ALL这一行,在下一行加入username ALL = (ALL) ALL。username指代你想加入sudo组的用户名。 

5. 把sudoers文件的权限修改回来。chmod u-w sudoers 

6. 这样普通用户可以执行sudo命令了。

 

考虑到配置文件很重要,linux提供了visudo命令来修改文件,并且在保存时会自动检测语法,防止配置错误导致没办法使用sudo命令。

二,visudo命令修改配置文件

 [root@wc1 Desktop]# visudo  
.............省略..................  
## Allow root to run any commands anywhere  
root    ALL=(ALL)       ALL  
mysql   ALL=(ALL)       ALL #把上面root的行复制粘贴,把root改成mysql 

含义是:

(1)用户mysql(第1列),可以从任何地方登录后(第2列),执行任何人的(第3列),任何命令(第4列)。

(2)还可以这么写:%mysql   ALL=(ALL)     ALL,就是让属于mysql用户组的用户,从任何地方登录,执行任何人的任何命令。

(3)如果不想输入密码,可以这么配置:%mysql   ALL=(ALL)    NOPASSWD: ALL,不过这样不太安全。

(4)最好不要把最后一列设置为ALL,因为这样相当于有了root的所有权限,可以按照需求来设置,比如mysql用户需要关闭、重启服务器的权限:

  %mysql   ALL=(ALL)     NOPASSWD:/sbin/shutdown,  /usr/bin/reboot

 

首先,新建用户 user1:

[root@wc1 Desktop]# useradd user1  

然后,mysql用户用sudo来修改用户user1的密码,如果连续3次输入mysql用户的密码都不对,那么sudo命令就不会执行:

     [mysql@wc1 ~]$ sudo passwd user1  
      
    We trust you have received the usual lecture from the local System  
    Administrator. It usually boils down to these three things:  
      
        #1) Respect the privacy of others.  
        #2) Think before you type.  
        #3) With great power comes great responsibility.  
      
    [sudo] password for mysql:   
    Sorry, try again.  
    [sudo] password for mysql:   
    Sorry, try again.  
    [sudo] password for mysql:   
    Sorry, try again.  
    sudo3 次错误密码尝试  
      
    [mysql@wc1 ~]$ sudo passwd user1  
    [sudo] password for mysql:   
    更改用户 user1 的密码 。  
    新的 密码:  
    无效的密码: 它基于字典单词  
    无效的密码: 过于简单  
    重新输入新的 密码:  
    passwd: 所有的身份验证令牌已经成功更新。  

 

posted @ 2018-04-09 11:34  凯kyne  阅读(2925)  评论(0编辑  收藏  举报