linux中有乙個存放臨時檔案的目錄
/tmp
(類似於
windows
中的temp
目錄),每個使用者產生的臨時檔案都存放在此目錄下,也就是說每個使用者對
/tmp
目錄都應該有寫許可權(否則無法拷貝生成檔案),這樣造成乙個問題,比如,
小王在/tmp
目錄下建立了乙個檔案,
小張看著不爽就可以刪掉,這如何控制? 其實,這種情況永遠都不會發生,因為/tmp
目錄有乙個特殊的許可權標記:
#ls -ld /tmp
drwxrwxrwt 5 root root 4096 may 24 13:55 /tmp
瞧見那個rwx
許可權最後的「
t」了沒,那個神奇的「
t」就是粘著位
t(有的資料中文也稱為粘滯位),是
linux
特殊許可權中的第三個(另外兩個是
setuid
和setgid
),定義為:許可權為
777的目錄設定粘著位
t以後,具有寫許可權每個使用者都可以在目錄下建立檔案,不同的是每個使用者只能刪除自己是所有者的檔案,也就是說只能刪除自己建立的檔案。
如何給乙個目錄賦上這個許可權?
chmod o+t /test # 追加t
許可權 或
chmod 1777 /test #在
777許可權基礎上再加上t許可權
那麼原來的執行標誌
x到**去了呢
? 系統是這樣規定的
, 如果本來在該位上有
x, 則這些特殊標誌顯示為小寫字母
(s, s, t).
否則,
顯示為大寫字母
(s, s, t)
為系統安全,此目錄可不賦予執行許可權,但讀寫許可權不能禁止,否則會影響使用者登入。
chmod -r 1666 /tmp
chmod 特殊許可權 t
set uid,gid,sticky bit的三個許可權的詳細說明 乙個檔案都有乙個所有者,表示該檔案是誰建立的.同時,該檔案還有乙個組編號,表示該檔案所屬的組,一般為檔案所有者所屬的組.如果是乙個可執行檔案,那麼在執行時,一般該檔案只擁有呼叫該檔案的使用者具有的許可權.而setuid,setgid...
s和t的特殊許可權
ls l 通常會顯示r w x許可權,分別對應 讀,寫,執行許可權。但是有時我麼會看到,s或t這類許可權標識。首先在主目錄下面的資料夾裡面編譯並執行該test.c檔案,生成a.out可執行程式,由於umask為0002的原因,許可權為 775而不是777。在此時執行a.out會生成hello.txt...
Linux 特殊位許可權s,t,i,a
linux檔案許可權除了r w x外還有s t i a許可權 s 檔案屬主和組設定suid和guid檔案在被設定了s許可權後將以root身份執行。在設定s許可權時檔案屬主 屬組必須先設定相應的x許可權,否則s許可權並不能正真生效 chmod命令不進行必要的完整性檢查,即使不設定x許可權就設定s許可權...