一.实践。
(1).第一种是最常见的sudo这个命令。这个命令可以让普通用户拥有管理权限,/etc/sudoers是sudo命令的配置文件。
在配置文件中它的基本格式为
user MACHINE=command
user :授权的用户名,也可以授权组名“%组名”的格式。
machine : 这个是主机名称
command : 要授权的命令,必须填写命令的完整路径。
在配置文件中加入tom ALL=ALL 就可以让tom这个用户拥有root权限。
(2).这一次我们要讲chmod这个命令中的特殊权限SetUID。
setUID的作用
1.可以让普通用户执行命令的过程中会暂时获得root权限
2.当执行ls -ld 命令时显现出的结果中,文件所属者里有s权限即为SetUID
例如:[[email protected] ~]# ls -ld /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 22 2012 /usr/bin/passwd
3.SetUID只能对二进制文件有效。
下面我为大家演示一下。
[[email protected] ~]# chmod 4755 /bin/chmod
[[email protected] ~]# ls -ld /bin/chmod
-rwsr-xr-x. 1 root root 48712 6月 22 2012 /bin/chmod
如上这条命令意思是让chmod这个命令有SetUID(简称SUID)权限。这是什么意思啊?这是应为让chmod这个命令能让普通用户使用。说到这一点,大家就该问chmod命令本身就可以让普通用户执行,怎么还学要给它设置为SUID权限呢?
这是因为让普通的用户,用这个拥有SUID权限的chmod命令来授权其它只有root能用的命令。
比如说我想用fdisk命令 如下:
[[email protected] ~]$ whereis fdisk
fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz
[[email protected] ~]$ ls -ld /sbin/fdisk
-rwxr-xr-x. 1 root root 101288 2月 22 2013 /sbin/fdisk
[[email protected] ~]$ chmod u+s /sbin/fdisk或[[email protected] ~]$ chmod 4755 /sbin/fdisk
[[email protected] ~]$ ls -ld /sbin/fdisk
-rwsr-r-x. 1 root root 101288 2月 22 2013 /sbin/fdisk
whereis命令意思是查找文件,也可以查找命令。然后查看它的权限是755,给这个命令设置为SUID权限,这个命令mmm这个普通用户就可以用了。如图:
想要用什么命令就可以用,但是这个也有个缺点,就是系统原来有SUID权限的都在普通用户中用不了。
比如说passwd命令:
[[email protected] ~]$ ls -ld /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 22 2012 /usr/bin/passwd
这个是系统本身就有的SUID权限
[[email protected] ~]$ passwd root
passwd: 只有根用户才能指定用户名称。
但是passwd可以对自己拥有改密码的权限。