【基础知识】Sticky Bit, SUID,SGID
作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/
1.Sticky Bit
1)作用于文件:曾經(jīng)被一些老的Unix系統(tǒng)用來將可執(zhí)行文件在第一次執(zhí)行后放在swap中提高后續(xù)該程序的運(yùn)行速度,現(xiàn)在已經(jīng)過時。
2)作用于目錄:若一個目錄的Sticky bit被設(shè)置,那么只有這個目錄的owner和root用戶才能對目錄中的文件或子目錄進(jìn)行刪除和重命名:
gnuhpc@gnuhpc-desktop:~$ mkdir teststickybit
用ls命令看這個目錄現(xiàn)在的權(quán)限情況:
drwxr-xr-x? 2 gnuhpc gnuhpc???? 4096 2011-09-10 13:08 teststickybit
我們將其中放入一個文件a.out后目錄的情況是:
gnuhpc@gnuhpc-desktop:~/teststickybit$ ls -l
total 8
-rwxrwxrwx 1 gnuhpc gnuhpc 7835 2011-08-23 16:06 a.out
添加sticky bit:
gnuhpc@gnuhpc-desktop:~$ chmod +t teststickybit
現(xiàn)在目錄的權(quán)限變?yōu)?#xff1a;
gnuhpc@gnuhpc-desktop:~$ ls -ld teststickybit
drwxr-xr-t 2 gnuhpc gnuhpc 4096 2011-09-10 13:11 teststickybit
盡管a.out有對所有人的全部權(quán)限,但是現(xiàn)在只能又其owner或者root對其進(jìn)行重命名和刪除:
gnuhpc@gnuhpc-desktop:~/teststickybit$ su guest
Password:
guest@gnuhpc-desktop:/home/gnuhpc/teststickybit$ mv a.out b.out
mv: cannot move `a.out’ to `b.out’: Permission denied
guest@gnuhpc-desktop:/home/gnuhpc/teststickybit$ rm a.out
rm: cannot remove `a.out’: Permission denied
它可以保護(hù)文件,這也是/tmp有sticky bit的原因了。
2.SUID
全稱是Set User ID,顧名思義,如果一個文件的SUID被設(shè)置了,那么當(dāng)運(yùn)行這個程序時,用戶ID就會被“設(shè)置”(實際上并沒有,只是權(quán)限上放開)為這個文件的owner的User ID。舉例說明,我有一個文件設(shè)置了SUID,它的owner是root,那么我用一個用戶,比如gnuhpc,來運(yùn)行這個程序,這個程序會以root身份的權(quán)限來執(zhí)行。這在你既希望某程序用某一個特定用戶(比如root)的權(quán)限來做一些事,又不想給使用者都分配該用戶權(quán)限時使用。希望加減SUID的都通過chmod u+/- s filename即可。
舉個例子:
ping可以測試網(wǎng)絡(luò)是否連接正常,其采用了ICMP協(xié)議進(jìn)行收發(fā)報文。但是只有root用戶才能建立ICMP報文,如何解決?通過SUID位來解決??纯?bin/ping的屬性就知道了(rws中的那個s)。
3.SGID
類似的,某用戶運(yùn)行設(shè)置了SGID的文件時,其權(quán)限好像是該文件所屬組的成員運(yùn)行該文件一樣。希望加減SGID的都通過chmod g+/- s filename即可。
?
作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/
轉(zhuǎn)載于:https://www.cnblogs.com/gnuhpc/archive/2012/12/04/2802298.html
總結(jié)
以上是生活随笔為你收集整理的【基础知识】Sticky Bit, SUID,SGID的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于新手使用CPC客户端的操作指南
- 下一篇: 微软Webcast课程下载软件iReap