前提:進程有屬主和屬組天揖;文件有屬主和屬組;
(1) 任何一個可執(zhí)行程序文件能不能啟動為進程:取決于發(fā)起者對程序文件是否擁有執(zhí)行權(quán)限慎菲;
(2) 啟動為進程之后唇兑,其進程的屬主為發(fā)起者;進程的屬組為發(fā)起者所屬的組纺涤;
(3) 進程訪問文件時的權(quán)限译暂,取決于進程的發(fā)起者:
? (a) 進程的發(fā)起者,同文件的屬主:則應用文件屬主權(quán)限撩炊;
? (b) 進程的發(fā)起者外永,屬于文件的屬組;則應用文件屬組權(quán)限衰抑;
? (c) 應用文件“其它”權(quán)限象迎;
suid
給二進制文件加上suid的限制
1.啟動為進程之后,其進程的屬主為原程序文件的屬主呛踊;
2.只能作用在二進制程序上,不能作用在腳本上,且設(shè)置在目錄上無意義 ;
3.執(zhí)行suid權(quán)限的程序時,此用戶將繼承此程序的所有者權(quán)限;
實例
linux中有一個二進制程序cat,屬主屬組均為root
linux中有一個系統(tǒng)文件/etc/shadow,屬主屬組均為root
我們創(chuàng)建一個普通用戶叫user1
user1具有對cat的執(zhí)行權(quán)限
user1 不具有對/etc/shadow的任何權(quán)限
默認情況下
user1執(zhí)行cat,系統(tǒng)創(chuàng)建一個cat進程,進程的屬主屬組取程序發(fā)起者,也就是user1:user1
cat進程訪問/etc/shadow,由于進程屬主屬組是user1:user1,與/etc/shadow的屬組屬主都不匹配,所以被拒絕訪問.
給cat設(shè)置SUID之后
user1執(zhí)行cat.系統(tǒng)創(chuàng)建一個cat進程,進程的屬主取cat的屬主,屬組取程序發(fā)起者,就是root:user1
cat進程訪問/etc/shadow,由于進程屬主是root,與/etc/shadow的屬主匹配,所以被允許
SGID
SGID相關(guān)說明
作用在二進制程序上時:
執(zhí)行sgid權(quán)限的程序時,此用戶將繼承此程序的所屬組權(quán)限
作用于目錄上時:
此文件夾下所有用戶新建文件都自動繼承此目錄的用戶組.
- 作用在二進制程序上時,原理同SUID,只是由user位變?yōu)間roup位.
- 作用于目錄上時演示:
實例
普通帳戶quintin在/tmp中創(chuàng)建一個目錄叫quintindir,添加SGID.權(quán)限777
$ chmod 2777 quintindir/
$ ll -d quintindir/
drwxrwsrwx. 2 quintin quintin 6 Nov 18 14:42 quintindir/
切換到普通用戶user1,在quintindir目錄中創(chuàng)建一個文件和一個目錄
$ touch user1file
$ mkdir user1dir
$ ll
-rw-rw-r--. 1 user1 quintin 0 Nov 18 14:47 user1file
drwxrwsr-x. 2 user1 quintin 6 Nov 18 14:47 user1dir
結(jié)果顯示,user1在quintindir目錄下創(chuàng)建的文件和目錄都自動繼承了quintindir的屬組
而且新目錄的權(quán)限也繼承了SGID.
所以設(shè)定了SGID的目錄中的所有新建文件和目錄都會自動屬于quintin組.
STICKY
顯示
? 文件other位的x權(quán)限,用t代替.表示被設(shè)置了Sticky
? 如果other位沒有x權(quán)限,會顯示為大寫T,表示有故障(權(quán)限無效)
Sticky相關(guān)說明
- 對于一個多人可寫的目錄砾淌,如果設(shè)置了sticky,則每個用戶僅能刪除和改名自己的文件或目錄谭网;
- 只能作用在目錄上.普通文件設(shè)置無意義,且會被linux內(nèi)核忽略
- 用戶在設(shè)置Sticky權(quán)限的目錄下新建的目錄不會自動繼承Sticky權(quán)限
實例
切換到quintin用戶,進入/app/tmp目錄
嘗試刪除或改名用戶wang的文件或目錄
改名文件
[quintin@centos7 /app/tmp]$ mv wangf1 aaa
mv: cannot move ‘wangf1’ to ‘a(chǎn)aa’: Operation not permitted
改名目錄
[quintin@centos7 /app/tmp]$ mv wangd1 bbb
mv: cannot move ‘wangd1’ to ‘bbb’: Operation not permitted
移動文件
[quintin@centos7 /app/tmp]$ mv wangf1 qdir1/
mv: cannot move ‘wangf1’ to ‘qdir1/wangf1’: Operation not permitted
刪除文件
[quintin@centos7 /app/tmp]$ rm -f wangf1
rm: cannot remove ‘wangf1’: Operation not permitted
刪除目錄
[quintin@centos7 /app/tmp]$ rm -f wangf1
rm: cannot remove ‘wangf1’: Operation not permitted
以上所有操作均提示Operation not permitted,表明Sticky權(quán)限已發(fā)揮作用.