Linux文件屬性和權限管理
Linux系統為多用戶系統,分為三種不同類型的用戶:
1. 所有者(User): 文件的擁有者,即創建文件的用戶。
2. 同組用戶(Group): 與所有者同一組的用戶。
3. 其他用戶(Others): 除了所有者和同組用戶外的其他用戶。
一、查看文件屬性和權限
Linux系統下,文件的權限有三種: 讀、寫、執行。
查看文件的權限(和文件的其他屬性)
ls -al (可簡寫為 ll) #隱藏文件(文件名或目錄名第一個字符為 . 的文件)也會顯示
第一列即為該文件的類型和權限,總共有10個字符位:
第 1 個字符位:表示文件的類型, d 表示目錄; - 表示文件; l 表示鏈接文件; b 表示塊設備文件,如硬盤;
c 表示字符設備文件; p 表示命名管道文件; s 表示套接字文件。常見的也就目錄 d 和文件 -
第2-4個字符位:表示所有者的權限,分別為讀(r)、寫(w)、執行(x),- 表示沒有該權限
第5-7個字符位:表示同組用戶的權限,分別為讀(r)、寫(w)、執行(x)
第8-10個字符位:表示其他用戶的權限,分別為讀(r)、寫(w)、執行(x)
二、改變文件屬性和權限
1. chgrp:即 change group 的簡寫。改變文件所屬群組。
chgrp [-R] groupname dirname/filename
# -R 表示遞歸該目錄下的所有子目錄和文件
例子:修改文件test.py的所屬組為 users,該組名不存在則報錯
chgrp users test.py
2. chown:即change owner 的簡寫。改變文件所有者,此外,還可以順便修改所屬組。
chown [-R] ownername dirname/filename
例子:修改文件test.py的所有者為 delav
chown delav test.py
#順便修改所屬組為root
chown delav:root test.py
3. chmod:改變文件權限
第一種方法:使用數字
chmod [-R] xyz dirname/filename
Linux文件的基本權限有9個,分別是 user/group/others 三種身份擁有各自的 read/write/execute 權限。
這三種權限可以使用數字來表示:
read: 4
write: 2
execute: 1
當使用數字來表示權限時,每一種身份各自的權限數字代表需要累加,最大數字為 7 。
例如:
user = rwx = 4+2+1 = 7 group = r-x = 4+0+1 = 5 others = --- = 0+0+0 = 0
改變文件test.py的權限為上面的,即為
chmod 750 test.py
第二種方法:使用字符
三種身份 user/group/others 使用字符表示:
user: u
group: g
others : o
all : a (全部身份)
三種權限 read/write/execute 使用字符表示:
read: r
write: w
execute: x
例如:
設置文件test.py的權限為 750
chmod u=rwx,g=rx,o=--- test.py
或
chmod u=rwx,g=rx,o-rwx test.py
設置文件test.py的權限為 755
chmod w=rwx,go=rx
把所有的執行權限去除,增加群組的寫權限
chmod u-x,g+w test.py
把所有人的寫權限去除
chmod a-w test.py
三、目錄和文件的權限意義
對於文件,rwx是針對【文件的內容】來設計權限。
read(r):可讀取文件的實際內容
write(w):可修改文件內容
execute(x):可被系統執行
對於目錄,rwx是針對【目錄內的文件名列表】來設計權限。
read(r):可讀取目錄的文件列表,即查詢該目錄下的文件名數據
write(w):可在該目錄下新建文件或目錄;可刪除該目錄下文件或目錄;可重命名該目錄下的文件或目錄;可移該目錄下的文件或目錄
execute(x):可進入該目錄進行操作
Linux文件屬性和權限管理