用戶與用戶組的概念
-
文件所有者
文件所有者擁有對(duì)自己所創(chuàng)建文件的所有權(quán)限偿衰,有權(quán)修改所屬文件的三類訪問者的訪問權(quán)限(文件所有者挂疆,用戶組,其他人)
-
用戶組
同一用戶組內(nèi)的用戶可以互相訪問各自公開給同組用戶的文件下翎,一般來說,屬于同一個(gè)用戶組的用戶會(huì)比不屬于用戶組的其他用戶對(duì)本組成員所屬文件擁有更多的訪問權(quán)限视事。
一個(gè)用戶組可以包含多個(gè)用戶胆萧,一個(gè)用戶可以同時(shí)參與多個(gè)用戶組 -
Linux 用戶身份與用戶組記錄的文件
- /etc/password : 默認(rèn)情況下跌穗,所有系統(tǒng)上的賬號(hào)與一般用戶身份記錄在此文件內(nèi)
- /etc/shadow : 記錄用戶的個(gè)人密碼(當(dāng)然是加密之后的)
- /etc/group : 記錄所有組名
Lunux 文件權(quán)限
-
文件屬性分析
在任意目錄下執(zhí)行下面代碼,便可查看當(dāng)前目錄下所有文件的屬性
ls -la
文件屬性說明-
第一列(文件權(quán)限)代表這個(gè)文件的類型與權(quán)限
- 各部分的含義
// 文件權(quán)限的格式如下 -rwxrwx--- // 可以分下面的四部分看 - rwx rwx --- 文件類型 文件所有者權(quán)限 文件所屬用戶組權(quán)限 其他人對(duì)此文件的權(quán)限
- 文件類型
- d: 目錄
- -: 文件
- l: 連接文件
- b: 設(shè)備文件里面的可供存儲(chǔ)的接口設(shè)備
- c: 標(biāo)識(shí)設(shè)備文件里面的串行端口設(shè)備奕枢,例如鍵盤验辞、鼠標(biāo)(一次性讀取設(shè)備)
需要注意的是,目錄與文件的權(quán)限意義并不一樣喊衫,上面討論的是文件的權(quán)限
第二列(連接數(shù))代表有多少文件連接到此節(jié)點(diǎn)(i-node)
i-node中記錄了一個(gè)文件的權(quán)限和屬性等信息跌造,每個(gè)文件名會(huì)關(guān)聯(lián)到一個(gè)具體的i-node。連接數(shù)代表有多少個(gè)文件名連接到同一個(gè)i-node上第三列(文件所有者)表示這個(gè)文件或目錄的“所有者賬號(hào)”
第四列(文件所屬用戶組)表示這個(gè)文件所屬用戶組的名字
-
第五列(文件大小)表示這個(gè)文件的大小族购,默認(rèn)單位為B
ps: 可以在ls的時(shí)候加上參數(shù)-h壳贪,會(huì)以更可讀的格式顯示文件的大小
第六列(文件最后被修改時(shí)間)表示這個(gè)文件的創(chuàng)建日期或者是最近的修改日期
第七列(文件名)表示該文件的文件名
-
-
改變文件的屬性與權(quán)限
- chgrp: 改變文件所屬用戶組
- chown: 改變文件所有者
- chmod: 改變文件的權(quán)限
-
改變文件所屬用戶組:chgrp
# 用法 chgrp [-R] <用戶組名> <目錄名或文件名> # 參數(shù)說明 -R : 進(jìn)行遞歸(recursive)的持續(xù)更改,即連同子目錄下的所有文件目錄都更新為指定的用戶組寝杖。 常常在更改某一目錄下所有文件的情況下使用
-
改變文件所有者:chown
# 用法 chown [-R] <賬號(hào)名稱> <文件名或目錄> 或者 chown [-R] <賬號(hào)名稱:組名> <文件名或目錄> # 參數(shù)說明 -R : 進(jìn)行遞歸(recursive)的持續(xù)更改违施,即連同子目錄下的所有文件都要更改
-
改變文件權(quán)限:chmod
########################################## ### 用數(shù)字類型來改變文件權(quán)限 ########################################## # 用法 chmod [-R] xyz 文件或目錄 # 參數(shù) xyz: 分別代表用戶、用戶組瑟幕、其他用戶的用戶權(quán)限的二進(jìn)制表示(以rwx為順序磕蒲,有則對(duì)應(yīng)位置為1,否則為0)值(例如:rwx: 7 / -wx: 3 / -w-: 2) -R: 進(jìn)行遞歸(recursive)的持續(xù)更改只盹,即連同子目錄下的所有文件都要更改 # 舉個(gè)栗子 sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt -rw-rw-rw- 1 sunny sunny 5 8月 15 11:45 a.txt sunny@DESKTOP-A80BM1L:~/test$ chmod 772 a.txt sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt -rwxrwx-w- 1 sunny sunny 5 8月 15 11:45 a.txt ########################################## ### 用符號(hào)類型來改變文件權(quán)限 ########################################## # 用法 chmod [u|g|o|a] [+|-|=] [r|w|x] <文件或目錄> # 參數(shù) u: user g: group o: others a: all(表示同時(shí)設(shè)置用戶辣往,用戶組和其他用戶的權(quán)限) +: 增加 -: 移除 =: 設(shè)置 r: 讀 w: 寫 x: 執(zhí)行 # 舉個(gè)栗子 sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt -rwxrwx-w- 1 sunny sunny 5 8月 15 11:45 a.txt sunny@DESKTOP-A80BM1L:~/test$ chmod o+r,g-x a.txt sunny@DESKTOP-A80BM1L:~/test$ ls -l a.txt -rwxrw-rw- 1 sunny sunny 5 8月 15 11:45 a.txt
-
目錄與文件權(quán)限的意義
-
文件的權(quán)限
- r(read):可讀取此文件的實(shí)際內(nèi)容,如讀取文本文件的文字內(nèi)容
- w(write):可以編輯殖卑、添加站削、刪減該文件的內(nèi)容(但是不包含刪除該文件)
- x(eXecute):該文件具有可以被系統(tǒng)執(zhí)行的權(quán)限
需要注意的是:文件的權(quán)限并不能限制一個(gè)用戶是否能刪除這個(gè)文件,下面舉個(gè)栗子(以文件為例孵稽,目錄也是一樣的许起,有興趣的讀者可以自行嘗試):
# 先以root用戶身份創(chuàng)建一個(gè)文件,并將權(quán)限設(shè)置為700菩鲜,即只有root用戶可以讀寫和執(zhí)行這個(gè)文件园细, # 其他用戶對(duì)這個(gè)文件沒有讀寫權(quán)限 輸入: echo "test" >> a.txt chmod 700 a.txt ls -l a.txt 輸出: -rwx------ 1 root root 5 8月 15 13:32 a.txt # 再切換回普通用戶狀態(tài),刪除這個(gè)文件(可以發(fā)現(xiàn)雖然sunny對(duì)a.txt不具有權(quán)限接校, # 但是仍然可以成功刪除該文件) sunny@DESKTOP-A80BM1L:~$ rm a.txt rm:是否刪除有寫保護(hù)的普通文件 'a.txt'珊肃? y sunny@DESKTOP-A80BM1L:~$ ls a.txt ls: 無法訪問'a.txt': 沒有那個(gè)文件或目錄
-
目錄的權(quán)限
- r(read contents in directory):表示你有讀取該目錄的結(jié)構(gòu)列表的權(quán)限,即可以用ls命令將目錄中的文件列表顯示出來(前提是同時(shí)擁有x權(quán)限)
- w(modify contents of directory):表示擁有可以更改該目錄結(jié)構(gòu)列表的權(quán)限
- 新建文件或目錄
- 刪除已經(jīng)存在的文件或目錄
- 將已存在的文件或目錄進(jìn)行重命名
- 轉(zhuǎn)移改目錄內(nèi)的文件馅笙、目錄
- 其他可以使得該目錄下某個(gè)或者某些文件的文件名發(fā)生變動(dòng)的操作
- x(access directory):表示用戶是否能進(jìn)入該目錄工作
需要注意的是:如果你對(duì)某個(gè)目錄不具有x權(quán)限伦乔,那么你就無法切換到該目錄下,也就無法執(zhí)行該目錄下的任何命令董习,即便你具有該目錄的r權(quán)限
上面對(duì)于是否可以刪除一個(gè)文件的討論烈和,這邊添加一個(gè)注意事項(xiàng):那就是如果你對(duì)一個(gè)目錄沒有x權(quán)限,則無法刪除該目錄下的任何文件皿淋,也就意味著如果這個(gè)目錄不為空招刹,你無法成功刪除這個(gè)目錄
-
-
如何判斷是否能刪除一個(gè)文件
根據(jù)上面的討論我們能發(fā)現(xiàn)恬试,其實(shí)一個(gè)文件是否能被一個(gè)用戶刪除,取決于這個(gè)用戶是否對(duì)該文件所在目錄具有一定的權(quán)限:
- 若用戶不具有目標(biāo)文件所在目錄的r權(quán)限:則用戶無法獲取目標(biāo)文件所在目錄的文件信息疯暑,也就無法刪除目標(biāo)文件 =>所以用戶要能夠刪除目標(biāo)文件训柴,必須具有目標(biāo)文件所在目錄的 r 權(quán)限
- 若用戶不具有目標(biāo)文件所在目錄的w權(quán)限:則用戶無法對(duì)目標(biāo)文件進(jìn)行刪除操作(對(duì)于目標(biāo)文件所在目錄下的其他文件同樣無法刪除),也就無法刪除目標(biāo)文件 => 所以用戶要能夠刪除目標(biāo)文件妇拯,必須具有目標(biāo)文件所在目錄的 w 權(quán)限
- 若用戶不具有目標(biāo)文件所在目錄的x權(quán)限:則用戶無法進(jìn)入目標(biāo)文件所在目錄,也就無法訪問到目標(biāo)文件越锈,不能刪除目標(biāo)文件 => 所以用戶要能夠刪除目標(biāo)文件,必須具有目標(biāo)文件所在目錄的 x 權(quán)限
綜上所述甘凭,要想刪除一個(gè)目標(biāo)文件稀拐,必須擁有目標(biāo)文件所在文件夾的 rwx 權(quán)限