拥有root权限提权让普通用户具有root权限

.实践。

    (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

            例如:[root@host ~]# ls -ld /usr/bin/passwd

         -rwsr-xr-x. 1 root root 30768 2月  22 2012 /usr/bin/passwd

       3.SetUID只能对二进制文件有效。

下面我为大家演示一下。      

[root@host ~]# chmod 4755 /bin/chmod

[root@host ~]# 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命令  如下:

        [mmm@host ~]$ whereis fdisk

       fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz

       [mmm@host ~]$ ls -ld /sbin/fdisk

           -rwxr-xr-x. 1 root root 101288 2月  22 2013 /sbin/fdisk

    [mmm@host ~]$ chmod u+s /sbin/fdisk或[mmm@host ~]$ chmod 4755 /sbin/fdisk

       [mmm@host ~]$ ls -ld /sbin/fdisk

            -rwsr-r-x. 1 root root 101288 2月  22 2013 /sbin/fdisk

  whereis命令意思是查找文件,也可以查找命令。然后查看它的权限是755,给这个命令设置为SUID权限,这个命令mmm这个普通用户就可以用了。如图:

wKiom1WfejmQ7xUkAALe2oh9Z8g643.jpg

   想要用什么命令就可以用,但是这个也有个缺点,就是系统原来有SUID权限的都在普通用户中用不了。

  比如说passwd命令:

[mmm@liu ~]$ ls -ld /usr/bin/passwd

-rwsr-xr-x. 1 root root 30768 2月  22 2012 /usr/bin/passwd

这个是系统本身就有的SUID权限

[mmm@liu ~]$ passwd root

passwd: 只有根用户才能指定用户名称。

但是passwd可以对自己拥有改密码的权限。