擁有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這個普通用戶就可以用了。如圖:
想要用什麼命令就可以用,但是這個也有個缺點,就是系統原來有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可以對自己擁有改密碼的權限。