Linux中除了普通權限之外,還有三個特殊權限。
SUID::以文件的所屬用戶執行,而非執行文件的用戶,多用於可執行文件,設置suid後,在權限位中,所屬用戶的 最後一個權限爲變爲s,添加SUID權限可用“+s”表示。
例如:passwd
[adam@ultraera ~]$ which passwd /usr/bin/passwd [adam@ultraera ~]$ ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 25980 Feb 22 2012 /usr/bin/passwd [adam@ultraera ~]$
SGID:主要針對文件夾,在設置了SGID的文件夾中創建任何新文件都繼承該文件的所屬組,設置sgid後,在權限位中,所屬組的最後一個權限位變爲s,添加SGID權限可用“+s”表示。
例如:
[adam@ultraera ~]$ mkdir ultraera [adam@ultraera ~]$ ls -l total 4 drwxrwxr-x 2 adam adam 4096 Nov 27 21:09 ultraera [adam@ultraera ~]$ chmod g+s ultraera/ [adam@ultraera ~]$ ls -l total 4 drwxrwsr-x 2 adam adam 4096 Nov 27 21:09 ultraera [adam@ultraera ~]$ su Password: [root@ultraera adam]# mkdir -p ultraera/test [root@ultraera adam]# ls -l ultraera/ total 4 drwxr-sr-x 2 root adam 4096 Nov 27 21:09 test [root@ultraera adam]#
sticky:針對文件夾,對目錄擁有寫權限的用戶,僅可以刪除其所擁有的文件,無法刪除其他用戶所擁有的文件,設置了sticky之後,在權限位,other的最後一個權限位變爲t,添加SGID權限可用“+t”表示。
例如:
[root@ultraera tmp]# mkdir ultraera [root@ultraera tmp]# chmod a=rwx,o+t ultraera/ [root@ultraera tmp]# ls -ld ultraera/ drwxrwxrwt 2 root root 4096 Nov 27 21:29 ultraera/ [root@ultraera tmp]# useradd user1 [root@ultraera tmp]# useradd user2 [root@ultraera tmp]# su user1 [user1@ultraera tmp]$ touch ./ultraera/test [user1@ultraera tmp]$ ls -l ultraera/ total 0 -rw-rw-r-- 1 user1 user1 0 Nov 27 21:31 test [user1@ultraera tmp]$ exit exit [root@ultraera tmp]# su user2 [user2@ultraera tmp]$ rm -f ./ultraera/test rm: cannot remove `./ultraera/test': Operation not permitted [user2@ultraera tmp]$
同樣使用chmod來設定特殊權限,與普通權限一樣,特殊權限也可以用數字表示:
suid : 4
sgid : 2
sticky : 1
chmod 4644 filename #設置文件suid權限 chmod 2755 flodername #設置文件夾sgid權限 chmod 1755 flodername #設置文件夾sticky權限
本文出自 “一杯白開水” 博客,請務必保留此出處http://ultraera.blog.51cto.com/6640392/1583493