文件權限
Linux 中任何一個文件都具有 「用戶、用戶組與其他用戶」三種權限,一個用戶可屬於多個用戶組。所有用戶的相關信息都記錄在 /etc/passwd
文件中,密碼記錄在 /etc/shaodw
文件,用戶組記錄在 /etc/group
文件。
root 用戶權限最高,不算其他用戶
文件屬性
ls -al
-rw-r--r--@ 1 zhoust staff 58503 Dec 8 07:50 antigen.zsh
drwxr-xr-x 2 zhoust staff 64 Apr 10 18:19 database
drwxr-xr-x 6 zhoust staff 192 Apr 9 22:12 h5
drwxr-xr-x 4 zhoust staff 128 Nov 20 16:15 logs
drwxr-xr-x 3 zhoust staff 96 Mar 18 17:42 node_modules
-rw-r--r-- 1 zhoust staff 320 Mar 18 17:08 package-lock.json
drwxr-xr-x 7 zhoust staff 224 Dec 8 07:20 software
drwxr-xr-x 9 zhoust staff 288 Nov 20 16:32 store
drwxr-xr-x 3 zhoust staff 96 Apr 4 15:43 vkds
drwxr-xr-x 8 zhoust staff 256 Oct 23 15:06 照片
drwxr-xr-x 12 zhoust staff 384 Apr 19 08:36 學習視頻
分為七個部分:
- 文件類型與權限
文件類型:普通文件(-
)、目錄文件(d
)、鏈接文件(l
)
權限:當前用戶、同用戶組的權限、其他用戶權限,rwx 用數字表示就是 421 - 有多少文件名鏈接到此節點(inode)
- 擁有該文件的用戶名
- 該文件所屬用戶組
- 文件大小:默認為 Byte
- 創建時間
- 文件名
rwx 對於文件和目錄的意義
對文件來說,w
意味着可以修改該文件的內容(但不包含刪除文件),x
意味着該文件有被執行的權限(真正是否能執行與文件內容有關)。
目錄主要負責記錄文件名列表
r
:意味着可以讀取該目錄結構w
:可對該目錄下的文件(或目錄)進行刪除、添加、修改、移動、重命名等,權限極大x
:能進入該目錄
如果用戶只對某目錄擁有 r 權限,只能查看該目錄下的文件名稱和類型,連文件大小以及各種屬性都看不到。如 zst 用戶只擁有 /home/zhoust
目錄的讀權限,只能看到該目錄下的文件名稱
[zhoust@MyPersonalCentOS ~]$ ls -al
total 36
drwxr-xr-- 5 zhoust zhoust 4096 Apr 21 14:55 .
[zst@MyPersonalCentOS ~]$ ls -l /home/zhoust/
ls: cannot access /home/zhoust/learn: Permission denied
total 0
d????????? ? ? ? ? ? learn
能完成任務的最小權限
如果用戶對某目錄沒有 x 權限,無法執行該目錄下的任何命令,也不能查詢該目錄下的文件內容。
注意第一項,只要是到了某個文件夾下,就有權限讀取該文件夾中的數據。
操作動作 | /dir1 | /dir1/file1 | /dir2 | 解釋 |
---|---|---|---|---|
讀取 file1 內容 | x | r | - | 要能夠進入 /dir1 才能讀到里面的文件數據! |
修改 file1 內容 | x | rw | - | 能進入且能修改 |
刪除 file1 文件 | wx | - | - | 能夠進入 /dir1 具有目錄修改的權限即可! |
將 file1 復制到 /dir2 | x | r | wx | 要能夠讀 file1 且能夠修改 /dir2 內的數據 |
修改文件屬性與權限
三個命令,chown
、chgrp
、chmod
分別表示修改文件所屬用戶、修改文件所屬用戶組、修改文件權限
chmod
語法分為兩種,一種是用數字修改,另一種是用符號修改文件權限。
使用數字修改,分別是 421
將對應位置上的數字相加,例如:
# 在 /home/zhoust 目錄下,其他用戶都不可進入
[zhoust@MyPersonalCentOS ~]$ ls -al
drwxr-x--- 5 zhoust zhoust 4096 Apr 25 20:00 .
[zst@MyPersonalCentOS ~]$ cd /home/zhoust/
bash: cd: /home/zhoust/: Permission denied
# 使用 chmod 修改為其他用戶可進入,zst 就能進入這個目錄了
[zhoust@MyPersonalCentOS ~]$ chmod 705 .
[zhoust@MyPersonalCentOS ~]$ ls -al
drwx---r-x 5 zhoust zhoust 4096 Apr 21 14:55 .
使用符號類型修改文件權限,格式為 [范圍][修改][某權限]
,u
所屬用戶,g
用戶組,o
其他用戶,a
全部用戶,用於修改的符號有 +-=
,權限還是那三個 rwx
。現在再把 /home/zhoust
目錄的其他用戶權限關閉:
[zhoust@MyPersonalCentOS ~]$ chmod o-rx .
[zhoust@MyPersonalCentOS ~]$ ls -al
total 36
drwx------ 5 zhoust zhoust 4096 Apr 21 14:55 .