文件權限
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 .
