1. 快速例項學習:
修改某個目錄下的所有檔案的許可權,包括子目錄中的檔案,例子如下:
# chmod 777 /home/user 注:僅把/home/user目錄的許可權設定為rwxrwxrwx # chmod -R 777 /home/user 注:表示將整個/home/user目錄與其中的檔案和子目錄的許可權都設定為rwxrwxrwx
其中,引數-R表示啟動遞迴處理
2. chmod命令解析:
chmod 用3個數字來表達對 使用者(檔案或目錄的所有者),使用者組(同組使用者),其他使用者 的許可權:
如:chmod 777 /test
數字7是表達同時具有讀,寫,執行許可權:讀取--用數字4表示;
寫入--用數字2表示;
執行--用數字1表示;
按照規則,如你想設定/test目錄的許可權為:
對使用者可讀可寫:4(讀取)+ 2(寫入)= 6 ;
對使用者組可讀可執行:4(讀取)+ 1(執行)= 5 ;
對其他使用者僅可讀:4(讀取);
這樣就可以用命令:
chmod 654 /test
3. 許可權解析:
針對檔案的三種許可權:
讀檔案內容(r),寫資料到檔案(w),作為命令執行檔案(x)
針對目錄的三種許可權:
讀包含在目錄中的檔名稱(r);
寫資訊到目錄中去(增加和刪除索引點的連結,w);
搜尋目錄(能用該目錄名稱作為路徑名去訪問它所包含的檔案和子目錄);
具體說明:
- 有隻讀許可權的使用者不能用cd進入該目錄:還必須有執行許可權才能進入;
- 有執行許可權的使用者只有在知道檔名,並擁有讀權利的情況下才可以訪問目錄下的檔案;
- 必須有讀和執行許可權才可以ls列出目錄清單,或使用cd命令進入目錄;
- 有目錄的寫許可權,可以建立、刪除或修改目錄下的任何檔案或子目錄,即使使該檔案或子目錄屬於其他使用者也是如此;
幾種常用許可權例項:
-rw------- (600) 只有所有者才有讀和寫的許可權
-rw-r--r-- (644) 只有所有者才有讀和寫的許可權,組群和其他人只有讀的許可權
-rwx------ (700) 只有所有者才有讀,寫,執行的許可權
-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有讀和執行的許可權
-rwx--x--x (711) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有執行的許可權
-rw-rw-rw- (666) 每個人都有讀寫的許可權
-rwxrwxrwx (777) 每個人都有讀寫和執行的許可權
4. 特殊許可權:
特殊許可權有三種:--s--s--t;
所有人s許可權:稱為Set UID,簡稱為SUID的特殊許可權;即當執行該檔案時將具有該檔案所有者的許可權。
所在組s許可權:稱為Set GID,簡稱為SGID的特殊許可權;即在該目錄下建立的目錄和檔案都屬於固定的組。
最後的t許可權:稱為Sticky Bit,簡稱為SBIT許可權,只針對目錄有效。它表示只能讓所屬主以及root可以刪除(重新命名/移動)該目錄下的檔案。
特殊許可權賦予與取消:
1. Set UID
# chmod u+s home/usr01/test
# chmod u-s home/usr01/test
2. Set GID
# chmod g+s home/usr01/test
# chmod g-s home/usr01/test
3. Sticky Bit
# chmod o+t home/usr01/test
# chmod o-t home/usr01/test
或者:
# chmod 0755 home/usr01/test
0755最前面的0表示不使用任何特殊許可權,該位上的數字可以是:
0(---);1(--t);2(-s-);3(-st);4(s--);5(s-t);6(ss-);7(sst);
系統是這樣規定的, 假如本來在該位上有x, 則這些特別標誌 (suid, sgid, sticky) 顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T) 。
另外: chmod 777 abc
chmod +t abc
等價於
chmod 1 777 abc