文章目錄
- 權限介紹
- chmod 指令
-
- 指令格式
- 常用用法
- 基本權限的含義
- chown 指令
-
- 指令格式
- 常用用法
- chgrp 指令
-
- 指令格式
- 常用用法
- umask 預設權限
權限介紹
-
為什麼需要權限
平時所使用的計算機都是個人計算機,都是自己或者自己信任的人在使用,是以感受不到權限的作用,都是使用管理者權限。
可是,對于伺服器來說,使用者非常多,伺服器裡儲存的資料有些非常重要,有些價值非常高,是以對權限當然是設定的越詳細越好,使用者的分級越明确越好。比如在銀行裡,行長和櫃台服務人員對于存儲資料的伺服器的權限肯定不同。在伺服器上,絕對不是所有的使用者都是用 root 身份登入,而要根據不同的工作需要和職位需要,合理配置設定使用者等級和權限等級。
- 檔案的所有者、所屬組和其他人
前面講 “ls -l” 時,簡單說過所有者和所屬組的含義,指令的第三列代表所有者,第四列代表所屬組。
檔案的所有者一般就是這個檔案的建立者,比如 data 檔案,我們在 shz1 下建立的,是以所有者就是 shz1;系統中,大部分系統檔案都是 root 建立的,是以絕大多數系統檔案的所有者都是 root。
檔案的所屬組,要想解釋這個概念,我們先要知道使用者組的概念。使用者組就是一組使用者的集合,為什麼要把一組使用者放在一起呢?當然是為了友善管理。比如,我們有100位使用者,都需要配置設定相同的權限,我們如果一個個使用者去配置,豈不是累死了0.0…,而将所有使用者分到一個使用者組,給整個組配置設定權限,不管多少使用者,一次就好了,是不是非常友善啊!所屬組的這個組,指的就是使用者組。
其他人,就是字面意思。
- 權限位含義
前面講 “ls -l” 時,我們知道第一列是檔案的權限,如上圖所示。
總共10個字元:
第一位代表檔案類型:
字元 | 檔案類型 | 描述 | 示例 |
---|---|---|---|
- | 普通檔案 | 用來在輔助儲存設備(磁盤)上存儲資料 | 程式源代碼、可執行程式、圖檔、聲音、文字、視訊等 |
d | 目錄檔案 | linux 中一切都是檔案,目錄也是 | /root /home |
l | 軟連結檔案 | 用于不同目錄下檔案的共享(快捷方式) | 建立已存在檔案的符号連結時,系統就建立了一個連結檔案,這個連結檔案指向已存在的檔案 |
b(塊) c(字元) | 裝置檔案 | 用來通路硬體裝置 | 鍵盤、列印機、光驅、硬碟等 |
p | 管道符檔案 | 特殊類型檔案 | Linux 系統下,程序之間通信可以通過該檔案完成 |
s | 套接字檔案 | 特殊類型檔案 | 一些服務支援 socket 通路,就會産生這樣的檔案 |
第2~4位代表檔案所有者的權限;
第5~7位代表檔案所屬組的權限;
第8~10位代表其他人的權限。
他們所能擁有的權限都是 “rwx” 權限:
r:read 讀取權限;
w:write 寫權限;
x:execute 執行權限。
如果有字母,代表相應的權限;如果是 “-” ,則代表沒有對應權限。
chmod 指令
項目 | 内容 |
---|---|
指令名稱 | chmod |
英文原意 | change file mode bits |
所在路徑 | /bin/chmod |
執行權限 | 所有使用者 |
作用 | 修改檔案的權限模式 |
指令格式
chmod [選項] 權限模式 檔案名
選項:
-R: 遞歸設定權限,也就是給子目錄中的所有檔案設定權限
-
權限模式
格式: [使用者身份] 賦予方式 權限
- 使用者身份
符号 | 含義 |
---|---|
u | 代表所有者(user) |
g | 代表所屬組(group) |
o | 代表其他人(other) |
a | 代表全部身份(all) |
預設預設是a
- 賦予方式
符号 | 含義 |
---|---|
+ | 加入權限 |
- | 減去權限 |
= | 設定權限 |
- 權限
符号 | 含義 |
---|---|
r | 讀取權限 |
w | 寫權限 |
x | 執行權限 |
權限還可以用數字表示:
符号 | 對應數字 |
---|---|
r | 4 |
w | 2 |
x | 1 |
比如 755權限:
7=4+2+1 代表所有者有rwx權限
5=4+1 代表所屬組有r-x權限
5=4+1 代表其他人有r-x權限
常用用法
- 用 “-” 去掉權限
- 用 “+” 給多個使用者添權重限
- 混合使用
- 數字權限
基本權限的含義
- 權限對檔案的作用
- r:可以讀取檔案中的資料。如果把權限對應到指令上,也就是可以使用 cat、more、less、head、tail、vim、gedit 等指令檢視檔案内容。
- w:可以修改檔案中的資料。如果把權限對應到指令上,也就是可以使用 vim、gedit、echo 等指令修改檔案内容。
- x:對檔案有執行權限。注意,檔案有了執行權限,該檔案能不能執行,還要看檔案中的代碼是不是正确的語言代碼。對檔案來說,執行權限是最高權限。
- 權限對目錄的作用
- r:可以檢視目錄下的内容,也就是可以檢視目錄下有哪些子檔案和子目錄。如果把權限對應到指令上,就可以用 ls 在目錄下檢視目錄下的内容啦。
- w: 可以修改目錄下的資料,也就是可以在目錄中建立、删除、複制、剪切子檔案或子目錄。如果把權限對應到指令上,也就是可以使用 touch、rm、cp、mv 指令。對目錄來說,寫權限是最高權限。
- x:目錄是不能運作的,給目錄執行權限,代表可以進入目錄。如果把權限對應到指令上,也就是可以使用 cd 指令,進入目錄。
其實這些權限位的含義可以聯系 ext4 檔案系統的組成,可知其是以然。
chown 指令
項目 | 内容 |
---|---|
指令名稱 | chown |
英文原意 | change file owner and group |
所在路徑 | /bin/chown |
執行權限 | 所有使用者 |
作用 | 改變檔案和目錄的所有者和所屬組 |
指令格式
chown [選型] 所有者:所屬組 檔案或目錄
選項:
-R: 遞歸設定權限
常用用法
-
修改檔案的所有者
隻有檔案的所有者和root使用者有權修改檔案的權限,如果普通使用者需要對某個檔案擁有最高權限的時候,是不能把其他人權限修改為最高權限,否則其他所有使用者都擁有了檔案的最高權限,這是非常不安全的做法。合理的做法是修改檔案的所有者,這樣既可以讓普通使用者有最高權限,也不會影響其他普通使用者。看如下例子:
- 修改檔案的所屬組
“:” 也可以用 “.” 替代;
修改所屬組,也是為了調整權限,即調整一組權限。
chgrp 指令
項目 | 内容 |
---|---|
指令名稱 | chgrp |
英文原意 | change group ownership |
所在路徑 | /bin/chgrp |
執行權限 | 所有使用者 |
作用 | 改變檔案和目錄的所屬組 |
指令格式
chgrp 所屬組 檔案或目錄
常用用法
- 修改改變檔案的所屬組
umask 預設權限
-
umask 權限的作用
umask 權限是 Linux 權限的一種。在 Linux 中,所有的檔案和目錄都要有基本的權限,建立的檔案和目錄當然也要有預設的權限。
在 Linux 中,通過 uamsk 預設權限來給所有建立立的檔案和目錄賦予初始權限,這一點和 Window 不一樣,Windows 是通過繼承上級目錄的權限來給檔案和目錄賦予初始權限的。
檢視系統的 umask 權限:
數值的 umask 權限,我們看到是: 0002 ,其中第一個 0 代表檔案的特殊權限,暫時不談;後 3 為數字 002 才是真正的 umask 預設權限。 -
umask 計算方法
Linux 中,對于建立檔案和目錄有預設的最大權限:
(1) 對檔案來說,建立檔案的預設最大權限是 666,沒有執行權限。)
(2) 對于目錄來講,建立目錄的最大權限是 777。
umask 計算方法很多,這裡列舉一個比較簡單的,将 uamsk 換算成字母,檔案和目錄的權限也換算成字母(分别為 rw-rw-rw- 和 rwxrwxrwx ),減去對應字母即可。
umask | 檔案 (rw-rw-rw-) | 目錄(rwxrwxrwx) |
---|---|---|
0 0 2 —> -------w- | rw-rw-r- - | rwxrwxr-x |
1 6 6 —> --xrw-rw- | rw------- | rw—x–x |
0 3 3—>----wx-wx | rw-r–r-- | rwxr–r-- |
注意:不是數字相減
測試結果如下:
3. umask 預設權限的修改方法
(1)臨時修改 umask 預設權限,重新開機或重新登入就會失效(開新的終端也不同)
(2)永久修改 umask 預設權限
對于目前使用者,在~/.bashrc 中 添加 umask 044 ,重新登入即可更改。
對于所有使用者,可以參照如下結果: