1.文件權限控制
首先我們先搞清一個問題:權限存在的意義?
在我們的印象中文件是用來存放實際數據的,目錄是用來存放文件的,但其實目錄的主要作用是用來記錄文件名列表,文件名與目錄有強烈的關聯。權限就是用戶或者其他人對這些目錄以及文件能進行些什麼操作。
文件的查看
當我們創建一個文檔或者文件,然後先去識別一下它們的權限:
對文件的識別:ls -l file
對目錄的識別:ls -ld dir
由上圖可以查看新創建的文件和目錄的權限,權限就相當於r、w、x,接下來我們再看看權限分別對文件的重要性和對目錄的重要性。
1.對文件的查看權限
首先舉例一個權限:
- rw-rw-r-- 1 kiosk kiosk 0 Aug 15 17:29 file
我們可以將它分爲8段:
1)第一段:”-“
分類 | 文件類型 |
---|---|
- | 代表的是普通文件 |
d | 代表的是目錄 |
l | 軟鏈接:就是快捷方式 |
s | socket |
c | 字符設備:就是將字符顯示到屏幕上的設備 |
2)第二段:”rw-rw-r- -“
字符 | 作用 |
---|---|
r(Read:讀取) | 讀取文件內容的權限 |
w(Write:寫入) | 修改文件內容的權限 |
X(eXecute:執行) | 執行文件的權限 |
u(user) | 用戶 |
g(group) | 組 |
o(other) | 其他 |
3)第三段:”1”
“1”:文件硬鏈接個數:就是文件那內容被系統記錄的次數
4)第四段:“kiosk”
“kiosk”:文件擁有者
5)第五段:“kiosk”
“kiosk”:文件擁有組
6)第六段:“0”
“0”:代表的是文件大小
7)第七段:“Aug 15 17:29”
“Aug 15 17:29”:最後一次修改的時間
8)第八段:“file”
“file”:文件名稱
2.對目錄查看的權限
例如:
d rwxr-xr-x 144 root root 12288 Aug 15 18:47 etc
這裏依舊分爲八段:
字符 | 解釋 |
---|---|
d | 類型 |
rwxr-xr-x | 權限 |
144 | 目錄中子目錄的個數 |
root | 用戶 |
root | 組 |
12288 | 子文件或子目錄的元數據大小(元數據:就相當於文件的屬性) |
Aug 15 18:47 | 最後一次被修改的時間 |
etc | 目錄名稱 |
當查看目錄權限的時候
字符 | 作用 |
---|---|
r | 表示讀取目錄結構列表的權限,就是當你查看一個目錄的權限的時候,你可以去查看該目錄下的文件名數據 |
w | 表示具有移動該目錄結構列表的權限,就是可以創建新的文件目錄或刪除對該目錄下的文件名可以操作 |
x | 記錄文件名 |
3.修改文件的用戶和用戶組
提示:該操作需要用root用戶去執行
指令 | 作用 |
---|---|
chown username file/dir | 修改文件或目錄的所有者 |
chown -R username dir(這裏-R的意思是遞歸修改) | 修改目錄以及目錄內所有文件及目錄的所有者 |
chown username:group file\dir | 同時修改組和所有者 |
chgrp username file/dir | 修改文件或目錄的組 |
chgrp -R username dir | 修改目錄內所有文件及目錄的組 |
- 修改文件或者目錄的所有者:
chown usernamefile/dir
可以從下圖看出文件的所有者被修改成student
- 修改目錄的所有者(包括目錄本身以及該目錄中的文件及目錄):
chown -R username dir
- 同時修改所屬組和所有者:
chown username:group file/dir
提示:當你想同時修改組以及所有者時,首先應該先知道有哪些組
顯示所有的組:cat /etc/group
提示:當你想修改一個目錄以及該目錄下的文件及子目錄時,除了“chown -R username:group file/dir”這個方法外,還可以在目錄後面加上”/*”,表示目錄下的所有內容,不加的話,就只會修改該目錄本身
- 修改文件或目錄的組
chgrp username file/dir
- 修改目錄中所有文件以及目錄的組
提示:不論是組還是用戶都必須是已經存在的,否則無法修改
2.權限的管理
1)字符形式
chmod <u/g/o> <+/-/=> <r/w/x> file/dir
如下圖所示:這裏的意思是當你先獲取file文件的權限後,根據字符形式可以修改文件file的權限,下圖的u代表的就是“rw-“,u+x之後權限就變成了rwx,對於“-”“=”的運算也類似
2)數字形式
r(2) w(1) x(0)
可以這樣理解:x等於2的0次方乘以0或者1=0或者1
x=2^0*0|1=0|1
w=2^1*0|1=0|2
x=2^2*0|1=0|4
由此可以得出一些值:
rwx=7
rw-=6
r-x=5
r--=4
-wx=3
-w-=2
--x=1
如下圖所示,可以進行對比,我們可以直接根據數字去修改文件或者目錄的權限
3.權限列表
特定用戶對特定文件有指定權限
rwxr-xr-x+權限位最後一位+的意思是該文件的權限列表被開啓
getfacl file:查看文件的權限列表
例如:
[kiosk@foundation8 Desktop]$getfacl file
file:file 文件名
owner:kiosk 文件所有人
group:kiosk 文件所有組
user:rw- 用戶權限
user:leo:rwx 特殊指定用戶權限
group::rw- 組權限
mask::rwk 權限最大值
other::r-- 其他人權限
設置列表用戶權限:
setfacl -m u:username:rwx file
關閉用戶權限:
setfacl -b file
提示:當我們沒有開啓權限列表的時候,可以從下圖看出-rw-r–r–後面的是“.”,當我們設置權限列表後,它的後面就變成了“+”,當我們關閉權限列表後,它又變成了“.”,說明“.”代表是權限列表處於關閉狀態,“+”表示權限列表處於開啓狀態
刪除權限列表指定用戶
setfacl -x u:username file