對于linux中文件或目錄的權限,應該都知道普通的rwx權限(關于linux中rwx權限的看我的這篇博文http://www.cnblogs.com/javaee6/p/3994750.html)。我們先看看下面兩個的權限是什么 非常奇怪,/tmp目錄和 passwd文件的權限怎么怪怪的,怎么有s和t權限呢??戳讼旅娴膬?nèi)容你就明白了。 1 SUID 當s出現(xiàn)在文件擁有者的x權限上時,如我們上面看到的/usr/bin/passwd這個文件的權限時-rwsr-xr-x,此時就被稱為SET UID簡稱SUID.SUID對于一個文件有什么限制和功能呢? SUID權限僅對二進制可執(zhí)行文件有效 執(zhí)行者對于該文件具有x的權限 本權限僅在執(zhí)行該文件的過程中有效 執(zhí)行者將具有該文件擁有者的權限 例如普通用戶用passwd修改自己的命令,實際上最終更改的是/etc/passwd文件. 此文件時用戶管理配置文件,只有root權限才能更改。 既然是root用戶才擁有此權限,為什么我們可以通過passwd命令來修改密碼呢,那這就要歸功于passwd設置了suid權限位了。 此時普通用戶通過執(zhí)行passwd命令,臨時擁有root權限,間接的修改/etc/passwd,以達到修改自己密碼的權限。 2 SGID 當s出現(xiàn)在目錄或文件所屬群的x權限上時,此時就稱為SET GID簡稱SGID,那SGID對文件和目錄分部有哪些功能呢? 2.1 SGID對目錄 使用者若對于此目錄具有 r 與 x 的權限時,該使用者能夠進入此目錄 使用者在此目錄下的群組將會變成該目錄的群組 若使用者在此目錄下具有 w 的權限(可以新建文件),則使用者所創(chuàng)建的新文件,該新文件的群組與此目錄的群組相同 2.2 SGID對文件 SGID 對二進制可執(zhí)行文件有效 程式執(zhí)行者對于該文件來說,需具備 x 的權限 執(zhí)行者在執(zhí)行的過程中將會獲得該文件群組的支援(用于改文件群組的權限) 3 SBIT 當s出現(xiàn)在目錄其他用戶的x權限上時,此時就稱為Sticky Bit簡稱SBIT,那SBIT有哪些限制和作用呢? 僅對目錄有效,對文件無效 當使用者在該目錄下建立文件或目錄時(有權限的情況下),僅自己與 root 才有權力刪除新建的目錄或文件 我們知道/tmp目錄是這樣的權限。 現(xiàn)在我們來驗證下,先用root賬號在tmp文件中創(chuàng)建一個文件test,然后用openstack(其他賬號)進入該目錄,刪除test文件,看看發(fā)生什么情況 我們看到這樣是不能刪除文件的。因為/temp目錄有SBIT權限。 4 怎么操作SUID、SBID、SBIT 操作這些標志與操作文件權限的命令是一樣的, 都是chmod. 有兩種方法來操作, (1)符號類型改變權限 chmod u+s testbin-- 為testbin文件加上setuid標志. chmod g+s testdir-- 為testdir目錄加上setgid標志 chmod o+t testdir-- 為testdir目錄加上sticky標志 (2) 數(shù)字類型改變檔案權限 采用八進制方式. 對一般文件通過三組八進制數(shù)字來置標志, 如 666, 777, 644等. 如果設置這些特殊標志, 則在這組數(shù)字之外外加一組八進制數(shù)字. 如 4666, 2777等. 這一組八進制數(shù)字三位的意義如下, abc a - setuid位, 如果該位為1, 則表示設置setuid 4--- b - setgid位, 如果該位為1, 則表示設置setgid 2--- c - sticky位, 如果該位為1, 則表示設置sticky 1--- 設置完這些標志后, 可以用 ls -l 來查看. 如果有這些標志, 則會在原來的執(zhí)行標志位置上顯示. 如 rwsrw-r-- 表示有setuid標志 rwxrwsrw- 表示有setgid標志 rwxrw-rwt 表示有sticky標志 那么原來的執(zhí)行標志x到哪里去了呢? 系統(tǒng)是這樣規(guī)定的, 如果本來在該位上有x, 則這些特殊標志顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T) 作者:天魂地煞 網(wǎng)站:http://www. |
|
來自: 碼農(nóng)書館 > 《linux》