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. sudo:3 次错误密码尝试 [mysql@wc1 ~]$ sudo passwd user1 [sudo] password for mysql: 更改用户 user1 的密码 。 新的 密码: 无效的密码: 它基于字典单词 无效的密码: 过于简单 重新输入新的 密码: passwd: 所有的身份验证令牌已经成功更新。
原文:IT虾米网
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/228324.html