2021-05-12 14:32:11
Shell基礎:Linux許可權管理
2020-06-16 17:33:37
Linux許可權基本概念
檢視系統(資料夾/檔案)許可權: ls -l =>d/- xxx xxx xxx. num owner group size date filename
- d代表目錄,-代表檔案
- 第一個xxx 表示所有者的許可權; 第二個xxx表示所在組的許可權; 第三個xxx表示其他使用者的許可權
- 為了保護系統,建立完檔案以後,某個檔案的預設許可權為-rw-r--r--. 所有者有讀寫許可權,其他使用者只有讀的許可權
- num表示檔案數目,建立的是檔案,num=1,建立的是資料夾,num表示資料夾中含有的檔案數
- owner 表示建立者
- group 表述檔案所屬組
- size 表示檔案大小
- date 表?%@4?日期
- filename 表示檔案或者資料夾名字
Linux 系統許可權分類
- rwx(r--讀,w--寫,x--執行)
- augo(a--所有,u--所有者,g---所屬組,o--其他)
Linux使用者管理
- 檢視使用者詳情 id user
- 範例: id root => uid=0(root) gid=0(root) groups=0(root)
- 範例: id sr => uid=500(sr) gid=500(sr) groups=500(sr)
- 顯示root/user使用者的uid, gid組id, 所屬組
- 新建使用者 useradd user/passwd user
- 範例:useradd user1 => id user1 => uid=501(user1) gid=501(user1) groups=501(user1)
- 範例:passwd user1,系統會彈出提示讓輸入密碼,passwd+user可以用來建立或者更改密碼
- 建立新使用者時預設會為該使用者分配id, 建立相應組,分配組id, id從500開始依次往下
- 建立完新使用者系統會把新使用者的設定資訊新增到/etc/passwd 檔案中
- 為新使用者新增完密碼系統會把相應的密碼資訊新增到/etc/shadow 檔案中
- 建立完新使用者會預設為新使用者新增一個組,並把組的資訊新增到/etc/group中
- 建立完新使用者,home家目錄下會自動為新建使用者分配一個資料夾,表示使用者的根目錄/home/user1
- 刪除使用者userdel -r user
- r引數非常重要,每次新增user使用者時,為該使用者新增和修改了很多檔案,加了-r才能徹底的把這些檔案都刪除乾淨,不然系統仍然儲存著user的資訊,無法再新增同名使用者。
- 刪除時忘了r引數,需要去更改非常多的檔案(/etc/passwd&shadow&group ; /home/user; /var/spool/mail/user)
- 給使用者新增組 gpasswd -a sr root
- gpasswd是操作/etc/group的administrator,可以對組新增或刪除member,增加密碼等等
- 把使用者sr新增到root組中,新增完執行id sr=>uid=500(sr) gid=500(sr) groups=500(sr),0(root)
- -a, append
- 從組中刪除使用者gpasswd -d sr root
- 把使用者sr從root組中刪除
Linux 有三種許可權更改方式:chmod/acl/sudo
- 前兩者用來更改檔案許可權,sudo用來更改應用程式或者是命令的執行許可權
- chmod的局限是無法實現多種許可權分配(使用者群體只有三種),面對多許可權時需要用ACL進行設定
Chmod
chmod (agou)(+-)(rwx) filename
- agou 表示檔案許可權更改影響的範圍,分別代表all, group, others, user
- +-表示增加或者刪除許可權
- rwx表示具體的許可權型別
- chmod a+x test.txt 表示給test.txt的所有使用者增加執行許可權
- chmod a-x,a-w test.txt 表示去除所有人執行和更改test.txt的許可權
chmod XXX filename
- 三類使用者一起設定,第一個X代表所有者,第二個X代表所屬組,第三個X代表其他
- r(4) w(2) x(1): chmod 755 test.txt 給test.txt的owner設定rwx的許可權,給其他所有使用者設定rx許可權因為要計算每一種使用者的許可權,多用於批次處理許可權。對使用者單獨設定許可權多用英文,而非數位
許可權細化的問題,chmod最多只有三個許可權組,當有多個使用者,並且每個使用者的許可權都不一樣時,chmod有局限性。
ACL(setfacl/getfacl)
檔案和資料夾的許可權:
- 如果有多個使用者組,許可權設定是很複雜的事情,需要仔細規劃(ACL和Chmod混合使用容易產生一些許可權問題,建議單獨使用)
- 資料夾的讀許可權:可以列出目錄下內容
- 資料夾執行許可權:可以進入到資料夾中,執行切換目錄等操作
- 資料夾的寫許可權:可以在資料夾中增刪檔案
- 使用者對某個檔案有了rwx許可權,不代表使用者有權刪除該檔案,只代表對檔案內容有了刪除許可權,要能對檔案級別進行操作,需要設定相應的資料夾的w許可權。
getfacl filename/filedirectory
- 檢視檔案/資料夾 許可權:結果會展示user,group和other的整體許可權,以及特殊使用者的許可權
setfacl -m u:username:rwx filename
- 給某個使用者新增對某個檔案或者資料夾的特殊許可權
- 給普通使用者新增完相應許可權以後,root也會有相應的許可權(理論上root擁有最多的許可權)
setfacl -x u:username filename
- 刪除使用者對某個檔案或者是資料夾的特殊許可權
SUDO
簡介
- 不同於chmod/acl 設定某個檔案的許可權,sudo主要是為非root使用者增加系統的處理和執行許可權。比如只有root有useradd許可權,通過sudo,可以為普通使用者增加useradd許可權。
- 為普通使用者增加許可權有兩種方式:帶密碼驗證和不帶密碼驗證,並且可以指定sudo可執行的機器。
- 使用sudo有兩個步驟:1. visudo編輯許可權 2. 普通使用者在使用命令前新增sudo
建立無密碼sudo(執行指令碼時通常採用無密碼sudo)
- 編輯visudo: 執行visudo, 採用Vim編輯器編輯新增 sr localhost=NOPASSWD:/usr/sbin/useradd,給使用者sr新增“新增使用者”的超級許可權
- 切換到sr使用者
- sudo useradd testadd,在sr模式下新增新的使用者
建立有密碼sudo(可以確保有密碼使用者才使用此命令)
- 編輯visudo: 執行visudo, 採用Vim編輯器編輯新增 sr localhost=/usr/sbin/useradd,給使用者sr新增“新增使用者”的超級許可權
- 切換到sr使用者
- sudo useradd testadd,系統會彈出命令提示,驗證完命令以後sr可以成功新增使用者
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-09/135145.htm
相關文章