linux文件分三種身份和四中權限。
-
u:文件的擁有者
-
g:文件所屬的群組
-
o:其他用戶
對于每個身份,又有四種權限,分別為:
-
r:讀取文件的權限(read)
-
w:寫入文件的權限(write)
-
x:執行的權限(execute)
-
s:特殊權限
在linux文件權限詳解中我們知道linux中有兩種表示文件權限的方式,分別為數字以及符號表示方式。
chmod以數字形式改變文件權限
chmod 755 test.sh
將755換算成字符形式,為rwxr-xr-x,也就是說文件的擁有者、所屬群組以及其他用戶都可以讀取與運行test.sh這個文件,但是只有擁有者自己可以寫入這個文件,也就是其他人無權修改test.sh這個文件。(當然root用戶無此限制,想改誰就該誰,這也是一個體現root賬號至高無上權力的體驗!)
通過數學形式改變文件的權限比較簡單,只要實現算好需要給文件賦予的權限,然后調用chmod指令即可,調用形式為:
chmod 新的權限 文件列表
chmod以字符形式改變文件權限
chmod +x test.sh
數學形式可以一次改變文件的所有三種身份的四種權限,而字符形式則更為靈活,可以給某個身份的某個權限單獨進行設置,例如上面的指令就是給三種身份都賦予執行的權限,你也可以分開單獨設置:
chmod u+x test.sh 只給擁有者加上可執行權限
chmod g+x test.sh 只給群組身份加上可執行權限
chmod o+x test.sh 只給其他人身份加上可執行權限
以上三條指令綜合在一起等價于上面的那一條指令,都是給所有身份都開啟可執行權限的功能,你也可以像下面這樣來操作:
chmod a+x test.sh
這里的a就代表所有的3中身份!
如果要去掉某個身份的某個權限,只需要將+變為-即可,例如去除其他人身份的可執行權限:
chmod o-x test.sh
對于讀取、寫入等權限,按照以上方式多進行練習即可,chmod通過字符形式改變文件權限的操作見下表:
chmod |
u g o a |
+(加上) -(減去) =(設定) |
r w x |
文件或目 |
最后再來個綜合的示例,以后類似的問題舉一反三即可:
chmod u=rwx,g+rx,o-x test.sh
轉: