關於linux許可權管理的基礎內容
許可權管理
Windows上預設就是管理員登入,Linux也是。
linux許可權管理的意義在於,同一臺伺服器有不同的使用者使用,應該擁有不同的許可權
1.檔案基本許可權
-rw-r--r--. 1 root root 0 8月 11 22:46 abd
第一位: - 檔案型別
-檔案
d目錄
l 連結
rw- 所有者擁有讀寫許可權 u —> user
r-- 所屬組擁有讀許可權 g —> group
r-- 其他人擁有讀許可權 o —> other
a 所有的,包含所有者,所屬組,其他人
修改許可權命令 chmod [選項] 模式 檔案/檔案路徑
選項 -R 遞迴
模式
[ugoa][±=][rwx]
[mode=421]
chmod u+x cangls
chmod g+w,o+w cangls
給所屬組賦予寫許可權,給其他人賦予寫許可權chmod a=rwx
給所有者,所屬組,其他人都賦予rwx許可權。chmod u-x abc
給abc 減少執行(x)許可權
chmod u=x,g=wx,o=wx goodstudy
給檔案指定的許可權
chmod u=,g=,o=, goodstudy
所有人對這個檔案沒有操作許可權
咱們工作中大多都是用數字來賦予權
r 讀 4 ,代表2的二次方
w 寫 2 ,代表2的1次方
x 執行 1 ,代表2的0次方
最長用到的許可權數字 777 755 644 , 工作中不會遇到467
2.許可權的作用
許可權對檔案的作用
r cat(檢視短文字內容) more(檢視長文字內容) head tail
w vi echo 但是不包含刪除檔案
目錄的內容是檔案,檔案的內容是資料,所有對目錄有寫許可權可以刪除裡面的檔案,但是對檔案有寫許可權只能刪除檔案中的資料,但是無法刪除自身,因為自身是屬於目錄的,需要有目錄的許可權才可以刪除檔案
x 可執行
許可權對目錄的作用
r ls 查詢目錄下的檔名
w 具有修改目錄結構的許可權。新建檔案和目錄,刪除移動重新命名(touch mkdir rm mv cp )
x cd 可以進入目錄
對檔案來說 最高許可權 x;
對目錄來說 最高許可權 w;
對目錄來說 只有 0 5(rx) 7 有意義 4 1 6 都是沒有意義的;
分配許可權有一個原則
分配檔案基本許可權時,核心原則:在最小許可權的情況下能夠實現要求即可。
檔案預設許可權
在Windows上檔案許可權是繼承上一個目錄的許可權,但是在Linux系統中,不是這樣的。
umask
檢視預設許可權
0022:超級管理員
0002:普通使用者
0: 檔案特殊位
022: 檔案預設許可權 預設許可權,是檔案建立後就有的許可權
檔案預設沒有執行許可權,必須手工賦予執行許可權。如果直接有執行許可權,系統不安全
預設檔案許可權最大為666
666-022=644 這是錯誤的方式是換算成字母在相減
預設許可權是換算成字母在相減。
-rw-rw-rw- 666
----w–w-- 022
-rw-r–r-- 644
目錄的預設許可權最大777
-rwxrwxrwx
----w–w--
-rwxr-xr-x 755
修改umask
臨時修改:通過命令修改都是臨時修改,想要永久修改 要修改配置檔案。
umask 0033
- rw- rw- rw- 666
- — -wx -wx 033
- rw- r-- r-- 644
umask配置檔案: vim /etc/profile
普通使用者的UID一定會大於199。
在配置檔案裡,如果UID大於199,umask是002,而小於的話是022
3.特殊許可權ACL(瞭解)
setfacl 選項 檔名
選項:
-m 設定acl許可權
-x 刪除指定的acl許可權
-b 刪除所有的acl許可權
-d 設定預設的acl許可權
-k 刪除預設acl許可權
-R 遞迴設定acl許可權
getfacl 檔名
檢視指定檔案的ACL許可權
setfacl -x u:lw 檔名
刪除指定使用者的ACL許可權(g:groupname 對使用者組進行刪除);
最大有效許可權:mask
mask是使用者指定最大有效許可權的。如果我給使用者賦予了ACL許可權,是需要和mask的許可權"相與"才能得到使用者的真正許可權
setfacl -m m:rx 檔名
修改指定檔案的最大有效許可權mask;
遞迴許可權
父目錄在設定許可權時,所有的子檔案和子目錄也擁有相同的ACL許可權
setfacl -m u:username:許可權 -R 目錄
setfacl -m u:lw:rx -R /home/av/
給資料夾遞迴賦予ACL的rx許可權時,會導致許可權溢位,表現就是目錄下的檔案也會得到執行許可權,無法避免,只能一個檔案一個檔案的刪除掉執行許可權
遞迴許可權只能賦予目錄,不能賦予檔案
預設許可權
如果給父目錄設定預設ACL許可權,那麼目錄下所有新建的子檔案都會繼承該預設ACL許可權
setfacl -m d:u:username:許可權 -R 目錄
d是default 預設
setfacl -m d:u:lw:rx -R /home/av/
getfacl /home/av