1、說明
change file access permissions
chmod [OPTION]... MODE[,MODE]... FILE...
完整的數字許可權是4位元。但在一般情況下,都只帶入三位元字,其代表的就是“後三位元”的許可權設定。
第一位元代表檔案或目錄的特殊性。4代表“suid;2代表“sgid”;1代表“沾滯元位-save text image”
2、用法
1)set-group-ID(SGID)
使進程擁有了其所在組的存取權限。S,s
(1)setuid
用法: chmod u+s XXX
該命令用於檔案,當檔案具有該許可權之後,無論檔案被誰執行,該程式都有檔案所有者的許可權。
(2)setgid
該命令用於目錄,當目錄具有該許可權之後,在該目錄內無論哪個使用者建立立的檔案都有和目錄相同的組。如群組共用目錄。
用法:chmod g+s XXX
-rw-r--r-- 1 root root 2682 Sep 26 04:25 col1.man
2)Sticky
保證未被授權的使用者不能刪除或重新命名某個目錄下其它使用者的檔案,除非是擁有者或root。T,t
他們只佔用x的位置來表示。
啟用用小寫,關閉用大寫。
用於目錄,當目錄具有該許可權之後,目錄內的檔案只能被root和檔案所有者所刪除,即使目錄具有o+w的許可權。這就防止了一個組中,一個使用者刪除了另一位使用者的檔案的情況。
chmod +t XXX
3、樣本
1)chmod -s pr
2)chmod +s pr
3)drwxrwxrwt 26 root root 4096 Sep 27 23:52 tmp
4)chown -R john:build /tmp/src
將目錄 /tmp/src 中所有檔案的所有者和組更改為使用者 john 和組 build
- R 遞迴式地改變指定目錄及其下的所有子目錄和檔案的擁有者。
- v 顯示chown命令所做的工作。
4、檔案的不可變屬性
該命令用於檔案,如果設定了這個屬性,即使是根使用者也不能刪除這個檔案,直到取消這個屬性為止。
用法:chattr +i XXX
可以用lsattr來查看檔案的這個屬性
5、目錄也是一種文檔
1)目錄上的讀寫執行許可權和普通文檔有所不同:
① 讀:使用者能夠讀取目錄內的文檔
② 寫:單獨使用沒有作用。和執行許可權連用能夠在目錄內添加和刪除文檔。
③ 執行:使用者能夠進入目錄,調用目錄內的資料
除了讀寫執行許可權以外,ext2,ext3文檔系統還支援強制位(setuid 和setgid)和冒險位(sticky)的特別許可權。
針對u,g,o,分別有set uid,set gid,及sticky。
2)強制位和冒險位添加在執行許可權的位置上。假如該位置上原已有執行許可權,則強制位和冒險位以小寫字母的方式表示,否則,以大寫字母表示。
3)預設情況下,使用者建立的文檔屬於使用者當前所在的組。目錄上配置了setgid,表示在此目錄中,任何人建立的文檔,都會屬於目錄所屬的組。
4)預設情況下,假如一個目錄上有w和x許可權,則任何人能夠在此目錄中建立和刪除文檔。一旦目錄上配置了冒險位(t),則表示在此目錄中,只有文檔的擁有者、目錄的擁有者和系統管理員能夠刪除文檔。
5)預設情況下,使用者執行一個指令,會以該使用者的身份來運行進程。如果設定了s強制位,能夠讓使用者執行的指令,以指令文檔的擁有者或所屬組的身份運行進程。
6)要刪除一個文檔,不一定要有這個文檔的寫入權限,但一定要有這個文檔的上級目錄的寫入權限。也就是說,即使沒有一個文檔的寫入權限,但有這個文檔的上級目錄的寫入權限,也能夠把這個文檔給刪除,而假如沒有一個目錄的寫入權限,也就不能在這個目錄下建立文檔。
怎樣才能使一個目錄既能夠讓任何使用者寫入文檔,又不讓使用者刪除這個目錄下他人的文檔,sticky就是能起到這個作用。stciky一般只用在目錄上,用在文檔上起不到什麼作用。
7)-wx許可權,即是一個許可權組合,對目錄而言,表示使用者可以在其中建立、刪除檔案。
8)能否對目錄中的檔案本身進行移動、刪除、重新命名等操作,取決於其上層目錄的許可權。這裡的檔案,不但指普通檔案,還包括目錄檔案,即目錄的子目錄。
9)對檔案內容的操作,一般是指修改檔案內容。對檔案內容進行操作,首先其目錄要有x許可權,然後檔案要有w許可權。
10)目錄也是一種檔案,它主要包括了兩方面的資訊,該目錄下檔案的檔案名稱與檔案inode編號,它們之間有一一對應的關係。不過目錄檔案比較特殊,不能用常規的方法進行讀寫,必須用系統的專用命令來操作。命令ls其實是對目錄檔案進行讀操作,命令mv,rm則是對目錄檔案進行寫操作。
11)檔案中的rw許可權只是針對當前檔案的內容進行限定。檔案名稱不屬於當前檔案的內容,它是儲存在上一級的目錄檔案的內容中。目錄將其下的所有檔案名稱看作是它的內容。改名與刪除這兩個操作歸入被操作檔案的上一級目錄來管理。
參考
【1】 基礎用法
http://blog.163.com/zhoumhan_0351/blog/static/39954227201052022340825/
【2】 http://linux.vbird.org/linux_basic/0210filepermission.php
【3】 對chmod講的非常清楚,並進行了幾個實驗
http://www.360doc.com/content/11/0928/10/5407405_151806974.shtml
【4】 http://blog.csdn.net/xuhuojun/article/details/2028118
【5】 http://120.116.67.1/b2evolution/blogs/blog1.php/2011/03/20/s-t
【6】 http://my.oschina.net/alphajay/blog/28808