u
,?g
,?o
, 和?a
是用來設置或查看文件或目錄權限在類Unix或Linux系統中的特殊字符,它們分別代表文件或目錄的所有者(user)、所屬組(group)、其他用戶(others)和所有用戶(all users)。
而權限方r
和w
是其中的兩種,分別代表讀權限(read)和寫權限(write)。除此之外還有執行權限?x
:
r
(read): 讀權限,允許讀取文件內容或目錄內容列表。讀權限(r)的數字值是4 。w
(write): 寫權限,允許修改文件或目錄內容。寫權限(w)的數字值是2 。x
(execute): 執行權限,允許執行文件或進入目錄。執行權限(x)的數字值是1 。
下面是一些使用這些權限字符的命令示例:
給文件所有者增加執行權限:
chmod u+x filename
所有者和所屬組增加讀和寫權限:
chmod ug+rw filename
撤銷其他用戶的所有權限:
chmod o-rwx filename
給所有用戶增加讀權限:
chmod a+r filename
給所屬組設置讀和執行權限(移除寫權限):
chmod g=rx filename
同時設置所有者和所屬組的執行權限,其他用戶無任何權限:
chmod ug+x,o= filename
給所有用戶設置所有權限(讀、寫、執行):
chmod a+rwx filename
細講:chmod ug+x,o= filename 這個 o= 是什么意思?
在chmod
?命令中,o=
?意味著為?其他用戶(others)?設置的權限將被清空。也就是說,不會為其他用戶(不是文件所有者,也不是文件所屬組的成員的用戶)授予任何權限。
chmod ug+x,o= filename
?這個命令的含義是:
ug+x
:對于文件(或目錄)的?所有者(user)?和?所屬組(group)?添加執行(x
)權限。o=
:移除其他用戶(o
,即除了所有者和所屬組之外的用戶)的所有權限,如果其他用戶之前有任何讀(r
)、寫(w
)或執行(x
)權限,這些都會被移除。
執行這個命令后,文件所有者和所屬組成員將可以執行這個文件,而其他用戶則沒有任何權限(無法讀取、寫入或執行)。
細講:chmod o-rwx filename 和 chmod o= filename 是否是一樣的?
是的一樣的,chmod o-rwx filename
?和?chmod o= filename
?都是用于移除對文件或目錄的**其他用戶(others)**的所有權限,即讀(r)、寫(w)和執行(x)權限。兩者的效果是相同的:
chmod o-rwx filename
:顯式地移除其他用戶的讀(r)、寫(w)和執行(x)權限。chmod o= filename
:設置其他用戶的權限為空,這意味著刪除所有設置的權限,結果同樣是沒有任何讀(r)、寫(w)和執行(x)權限。
執行這兩個命令之后,文件將不再對“其他用戶”開放任何權限,只有文件所有者(u)和所屬組(g)的成員才可能有權限,視他們原來被設定的權限而定。