1. 程式人生 > 實用技巧 >linux-特殊許可權

linux-特殊許可權

備註:馬哥課堂筆記總結

時間:2015.09.08

linux的特殊許可權

許可權模型:
u, 檔案屬主

g, 檔案屬組

o,其他使用者
r,可讀

w, 可寫

x,可執行
程序的安全上下文:
前提:程序有屬主(程序以哪個使用者的身份執行);檔案有屬主和屬組;
(1) 使用者是否能夠把某個可執行程式檔案啟動為程序,取決於使用者對程式檔案是否擁有執行許可權;
(2) 程式啟動為程序後,此程序的屬主為當前使用者,也即程序的發起者;程序所屬的組,為發起者的基本組;
(3) 程序擁的訪問許可權,取決其屬主的訪問許可權:
(a) 程序的屬主,同文件屬主,則應用檔案屬主許可權;
(b) 程序的屬主,屬於檔案的屬組,則應用檔案屬組許可權;

(c) 則應用其它許可權;

SUID:
(1) 任何一個可執行程式檔案能不能啟動為程序:取決於發起者對程式檔案是否有執行許可權;
(2) 啟動為程序之後,其屬主不是發起者,而程式檔案自己的屬主;這種機制即為SUID;
許可權設定:
chmod u+s FILE...
chmod u-s FILE...
注意:
小寫的s: 屬主原本擁有x許可權;
大寫的S: 屬主原本無x許可權;

SGID:
預設情況下,使用者建立檔案時,其屬組為此使用者所屬的基本組;
一旦某目錄被設定了SGID許可權,則對此目錄擁有寫許可權的使用者在此目錄中建立的檔案所屬的組為目錄的屬組,而非使用者的基本組;


許可權設定:
chmod g+s FILE...
chmod g-s FILE...

Sticky:
對於一個多人可寫的目錄,此許可權用於限制每個僅能刪除自己的檔案;

許可權設定
chmod o+t FILE...
chmod o-t FILE...

SUID, SGID, STICKY
000 0無任何特殊許可權許可權就是根據普通許可權來執行
001 1有 STICKY許可權 此許可權和SGID許可權來同時使用,防止目錄下使用者利用許可權來修改其目錄下其它使用者的資料夾和刪檔案,只能對自己的檔案和目錄做操作了

010 2 有SGID許可權 此許可權時針對目錄來建立的,目錄加上此許可權之後在此目錄下任何使用者建立的檔案和目錄的屬組都屬於此目錄的屬組,這樣此使用者如果與父目錄的屬組為同一個組的話,就能在此目錄執行與目錄屬組相同的許可權

011 3有SGID和STICKY許可權 防止目錄下使用者利用許可權來修改其目錄下其它使用者的資料夾和刪檔案,只能對自己的檔案和目錄做操作了
100 4有SUID許可權此許可權是非常特殊的許可權,非必要情況下不要使用,加上此許可權是所有程序的許可權不是啟動此程序的使用者的許可權了啟動為程序之後,其屬主不是發起者,而程式檔案自己的屬主 (說實話我自己有點不太理解還請老師點評呀)

101 5 有SUID和STICKY許可權

110 6有SUID和SGID許可權
111 7有SUID、SGID和STICKY許可權

chmod 4777 FILE
chmod 3755 DIR

練習:
1、讓普通使用者能使用/tmp/cat去檢視/etc/shadow檔案;

wKioL1XwOV6RjE5GAAUjQkxdDcE854.jpg

2、建立目錄/test/data,讓某組內普通使用者對其有寫許可權,且建立的所有檔案的屬組為目錄所屬的組;此外,每個使用者僅能刪除自己的檔案;

wKioL1XwTtegLN8eAAd8PUYderE027.jpg

轉載於:https://blog.51cto.com/huichengu/1693289