使用chmod命令可以改變權限。下面這個例子顯示了如何使用chmod命令來改變readme.txt文件的權限。
假設下面是readme.txt文件的初始權限設置:
-rw-rw-r—— 1 winda winda 39 8月 11 12:04 readme.txt
如果是這個文件的所有者或者登錄為根用戶身份,則可以改變所有者、組群和其他人的權限。初始時,從上面的分析可以看出,這個readme.txt文件的所有者和組群可以讀取和寫入文件(rw-),組群之外的任何人只能讀取文件(r——)。
文件權限是一種安全措施。無論何時允許其他人讀取、寫入或執行文件,都在增加文件被篡改或刪除的危險。作為一種基本原則,應該只給那些真正需要這些文件的人以讀寫權限。
在下面的例子中,想給每個人以寫入readme.txt文件的權限,因此他們可以讀取文件,在其中加注,並保存文件。這意味著必須改變文件權限中的“其他人”部分。
此時需要在shell或終端提示下輸入:
chmod o+w readme.txt
o+w命令參數告訴系統想給其他人寫入文件readme.txt的權限。要查看結果,再次列出文件的細節。此時,這個文件的用戶訪問權限就如下所示了(在第3列中多了一個w):
-rw-rw-rw- 1 winda winda 39 3月 11 12:04 readme.txt
現在,每個人都可以讀取和寫入這個文件了。
要從readme.txt中刪除組群和其他人的讀寫權限,使用chmod命令來取消讀取和寫入這兩個的權限。
命令如下:
chmod go -rw readme.txt
通過輸入go-rw參數告訴系統刪除文件readme.txt中組群和其他人的讀取和寫入權限。再次通過 ls -1命令列出的結果如下:
-rw—— 1 winda winda 39 3月 11 12:04 readme.txt
綜上所述,當想用chmod命令來改變權限時,文件的用戶身份主要有如下幾類:
u:擁有文件的用戶(所有者);
g:所有者所在的組群;
o:其他人(不是所有者或所有者的組群);
a:每個人或全部(u、g、和o)。
用戶所具有的文件訪問權限類型如下:
r:讀取權;
w:寫入權;
x:執行權。
文件權限配置行為有如下幾類:
+:添加權限;
-:刪除權限;
=:使它成為惟一權限。
從文件readme.txt中刪除所有權限(包括每個人的權限)的命令如下:
chmod a -rwx readme.txt
現在,來看看是否還能夠使用cat readme.txt命令來讀取這個文件,它所返回的輸出應如下所示:
cat: readme.txt: Permission denied
刪除所有的權限,包括自己的,會成功地鎖住這個文件。但是由於這個文件屬於用戶,可以隨時使用以下命令把它的權限改回來。命令如下:
chmod u+rw readme.txt
使用命令cat readme.txt來試試作為文件所有者是否還能夠讀取該文件。
這裡是幾個可以用在chmod命令設置上的常用例子:
g+w:為組群添加寫入權;
o-rwx:刪除其他人的所有權限;
u+x:允許文件所有者執行這個文件;
a+rw:允許每個人讀取並寫入文件;
ug+r:允許所有者和組群讀取文件;
g=rx:只允許組群讀取和執行(不能寫入)。
最後,介紹一下恢復組群的權限的方法。命令如下:
chmod ug+x tigger
現在,如果用ls -dl命令檢查一下,會發現只有其他人(others)被拒絕了到目錄tigger的訪問權。