?ls -l file_name
?-rw-r--r-- 12 linuxize users 12.0K Apr 28 10:10 file_name
?|[-][-][-]- ? [------] [---]
?| | | | | ? ? | ? ? ? |
?| | | | | ? ? | ? ? ? +-----------> 7. Group 用戶組
?| | | | | ? ? +-------------------> 6. Owner 所有者
?| | | | +--------------------------> 5. Alternate Access Method
?| | | +----------------------------> 4. Others Permissions 其他用戶權限
?| | +-------------------------------> 3. Group Permissions 用戶組權限
?| +----------------------------------> 2. Owner Permissions 所有者權限
?+------------------------------------> 1. File Type 文件類型
??
?
文件類型(1. File Type)
文件類型。
-
:文件;
d
:目錄;
l
:(L) 鏈接;
?
權限組
對于所有者和用戶組權限,文件/目錄創(chuàng)建時,默認賦值所有者為創(chuàng)建者,用戶組為創(chuàng)建者所在組,但它們是可被更改的。
繼文件類型之后的 9 個字符,分為 3 個權限組,都使用 -
, r
, w
, x
來組合。
?
數值授權(推薦)
各權限數值:
-
r
(read 讀) = 4
-
w
(write 寫) = 2
-
x
(execute 執(zhí)行) = 1
-
-
(無權限) = 0
由于各個權限組合不會得到相同的數字,因此每一類用戶的權限都可以用一個數字表示,修改權限使用命令 chmod
,格式為:
?chmod [OPTIONS] NUMBER FILE... # 多個文件使用空格隔開
例:
?chmod 760 filename
7
表示所有者權限:4 + 2 + 1 = 7,即 rwx
,所有者擁有全部權限。
6
表示用戶組權限:4 + 2 = 6,即 rw-
,用戶組擁有讀寫權限。
0
表示其他用戶權限:0,即 ---
,其他用戶沒有權限。
以數值形式查看文件權限,使用 stat
命令:
?stat -c "%a" file_name
?
符號授權(有特殊用處)
格式:
?chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...
解釋:
[ugoa…]
:
-
u
- 所有者。 -
g
- 用戶組。 -
o
- 其他用戶。 -
a
- 所有用戶,等同于ugo
。
[-+=]
:
-
-
- 移除指定權限。 -
+
- 添加指定權限。 -
=
- 賦值指定權限,覆蓋原有權限,如果=
后面為空,則為移除所有權限。
perms...
:
-
權限符,可選且多選:
r
,w
,x
,X
,s
,t
。 -
也可以復制其它權限組,但只能單選:
u
,g
,o
;例:
chmod g=u filename
[,…]
:
-
表示分別授權,
,
之間不能有空格。例:chmod u=rwx,g=r,o= filename
FILE...
:
-
為一個或多個文件或目錄設置權限,使用空格隔開。
?
修改用戶組
?chgrp new_group_name file_or_directory
?
修改所有者
?sudo chown [-R] new_owner_username[:new_group_name] /path/to/file_or_directory
參數:
-
-R
:如果目標是目錄,遞歸修改此目錄及所有子目錄和文件的所有者。 -
:new_group_name
:用戶名:用戶組,修改所有者的同時指定用戶組,即:同時修改用戶組。
?
特殊權限
特殊權限:s
, S
, t
, T
。
s
:體現在所有者權限組時:setuid (Set User ID up on execution),體現在用戶組權限組時:setgid (Set Group ID up on execution),意思是運行時(有 x
權限)提升權限,以文件所有者(setuid)或用戶組(setgid)的身份進行運行。
S
:類似于 s
,但沒有執(zhí)行權限(x
)。
-
S
是s
的一個變體,給文件所有者或用戶組設置s
權限時,如果文件已經擁有x
權限,則設置之后體現為s
,如果文件沒有x
權限,則設置之后體現為S
。
-
沒有設置
S
權限的命令,只有設置s
權限的命令,二者之間的體現取決于文件原有的執(zhí)行權限x
。
t
:set sticky
bit,最常見于像 /tmp
這樣的目錄上,它允許用戶在目錄中創(chuàng)建文件或子目錄,但只允許文件的所有者或管理者刪除或改名自己的文件。
T
:類似于 t
,但沒有執(zhí)行權限(x
),屬于 t
的變體。描述參照 S
。
?
特殊權限授權
使用數值形式設置特殊權限:
-
setuid = 4
-
setgid = 2
-
sticky = 1
-
no changes = 0 (可忽略)
特殊權限數值放在第一位:
?sudo chmod 6760 filename
文件權限將展示為 -rwsrwS---
:
第一個數字 6
:setuid + setgid = 4 + 2 = 6,因此在所有者和用戶中都體現了 s
權限。由于所有者的權限值為 7
,有執(zhí)行權限,所以它表示為 s
,而用戶組權限為 6
,沒有執(zhí)行權限,因此表示為 S
。
?
移除特殊權限
移除特殊權限,使其留下常規(guī)權限,使用符號授權方式:
?sudo chmod u-s /path/to/file_or_directory
?文章來源:http://www.zghlxwxcb.cn/news/detail-841899.html
參考
參考文章:https://linuxize.com/post/understanding-linux-file-permissions/文章來源地址http://www.zghlxwxcb.cn/news/detail-841899.html
到了這里,關于Linux 文件權限的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!