Linux基础命令十六:sudo权限

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

你可能感兴趣的:(Linux操作系统基础命令)