1. 程式人生 > >關於linux許可權管理的基礎內容

關於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

許可權管理內容大致如上,如有錯誤或不當之處,敬請指出,謝謝!