文件的類型
Linux的哲學思想:一切皆文件。
Linux的文件分爲多種類型。
可以通過ll命令查看文件的類型:
ll
#輸出:
-rw-------. 1 root root 1266 2月 29 11:42 anaconda-ks.cfg
#解釋:
第一個字段中的第一個字符表示文件的類型:這裏爲-,表示這是普通文件。
Linux常見的文件類型:
- #普通文件(如.txt文件)
d #目錄
c #字符文件(比如鍵盤)
b #block文件(比如硬盤)
l #軟鏈接(類似於Windows快捷方式)
權限分類
基本文件權限分爲幾種:
- r表示讀權限,用4表示。
- w表示寫權限,用2表示。
- x表示執行權限,用1表示。
若文件爲普通文件:
- r表示可以讀取文件內容。
- w表示可以修改文件內容。
- x表示可以執行這個文件,比如二進制文件、腳本文件。
若文件爲目錄:
- r表示可以用ls查看目錄
- w可以在目錄裏操作文件(如創建,刪除和移動文件)
- x表示可以用cd進入目錄
可以通過ll命令查看文件的權限:
ll
#輸出:
-rwxrw-r--. 1 root root 1266 2月 29 11:42 anaconda-ks.cfg
解釋:
文件類型後面的字符rwxrw-r–表示文件權限,分爲屬主、屬組和其他用戶的權限。
比如這裏rwxrw-r–表示:屬主的權限爲rwx,屬組的權限爲rw-,其他用戶的權限爲r–。
文件有所屬主和所屬組。即這個文件屬於哪個用戶,屬於哪個組。
舉例:
- 文件的主人操作此文件,權限爲rwx。
- 文件的所屬組操作此文件,權限rw-。
- 其他用戶的權限爲r–。
權限管理
chmod命令
此命令用於改變文件的權限
#增加文件權限
chmod +x 123.txt #給這個文件添加執行權限(給所屬主、所屬組和其他用戶都添加了x權限)
chmod u+x 123.txt #給這個文件的所屬主添加x權限。
chmod g+x 123.txt #給這個文件的所屬組添加x權限。
chmod o+x 123.txt #給這個文件的其他用戶添加x權限。
#去除文件權限的命令類似
chmod o-x 123.txt #去除這個文件的其他用戶的x權限。
- 利用數字來修改文件權限
r用4表示。w用2表示。x用1表示。那麼,這些數字就能唯一確定文件的權限。
比如:0表示無任何權限。
比如:1表示只有x權限。
比如:2表示只有w權限。
比如:3表示有w和x權限(2+1=3)。
比如:4表示只有r權限。
比如:5表示有r和x權限(4+1=5)。
比如:6表示有r和w權限(4+2=6)。
比如:7表示有r、w和x權限(4+2+1=7)。
chmod 644 hello.txt #將文件的權限修改爲rw-r--r--。
chown
用來改變文件的所屬主和所屬組
- 可以使用
ll
命令查看文件的所屬主和所屬組:
ll
輸出:
-rwxrwx--- 1 root root 27 3月 7 14:25 123 #這個文件的所屬主和所屬組分別是root和root。
- 使用chown命令改變文件的所屬主和所屬組:
chown user1:user1 123 #將文件的所屬主和所屬組都改爲user1
chown :root 123 #將文件的所屬組改爲user1
注意:如果文件是目錄,要使用
-R
參數遞歸修改。
facl
chmod命令按照文件的所屬主、所屬組和其他用戶來管理文件權限。
facl可以不僅可以做到按照文件的所屬主、所屬組和其他用戶來管理文件權限,還能按照根據某個用戶來管理。
- getfacl:用於查看文件的權限
getfacl 123.txt
#輸出
# file: 123.txt #文件名
# owner: user1 #所屬主
# group: root #所屬組
user::rwx #所屬主的權限
group::rw- #所屬組的權限
other::r-- #其他用戶的權限
- setfacl:用於修改文件的權限
setfacl -m u:xiaoming:r-x,g::r--,o::--- 123.txt
#參數-m表示修改
# u:xiaoming:r-x 表示用戶xiaoming的權限爲r-x
# g::r-- 表示所屬組的權限爲r--
# o::--- 表示其他用戶的權限爲---