1. sudo 权限简介
root把本来只能超级用户执行的命令赋予普通用户执行
2. sudo使用
[root@localhost ~]# visudo #修改的是/etc/sudoers文件
root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份)授权命令(绝对路径)
# %wheel AAL=(ALL) ALL
#%组名 被管理主机地址=(可使用的身份) 授权命令(绝对路径)
3. 练习:授予普通用户重启服务器的权限
[root@localhost ~]# useradd test
[root@localhost ~]# echo redhat | passwd --stdin test
[root@localhost ~]# su - test
[test@localhost ~]$ sudo shutdown -r now
[sudo] password for test:
test is not in the sudoers file. This incident will be reported.
[root@localhost ~]# exit
[root@localhost ~]# visudo
test ALL=(ALL) /sbin/shutdown -r now
[root@localhost ~]# su - test
[test@localhost ~]$ sudo /sbin/shutdown -r now
[sudo] password for test: #输入test用户的密码
[test@localhost ~]$ sudo shutdown -h now #只授权了重启权限,所以不能关机
[sudo] password for test:
Sorry, user test is not allowed to execute '/sbin/shutdown -h now' as root on localhost.localdomain.
4. 练习:授予普通用户可以添加其他用户
[root@localhost ~]# su - test
[test@localhost ~]$ useradd test1
-bash: /usr/sbin/useradd: Permission denied
[root@localhost ~]# exit
[root@localhost ~]# visudo
test ALL=/usr/sbin/useradd
test ALL=/usr/sbin/passwd #这个权限很大,使普通用户可以修改root密码,一般不能这么做
#可以设为这样:test ALL=/usr/sbin/passwd [A-Za-z]*,!/usr/bin/passwd "",!/usr/bin/passwd root
[root@localhost ~]# su - test
[test@localhost ~]$ sudo useradd test1 #这里尽量使用绝对路径,否则有的版本不兼容
[sudo] password for test:
[test@localhost ~]$ cat /etc/passwd
test1: x :1003:1004::/home/test1:/bin/bash