Linux中的特殊權限

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章