首頁 > 軟體

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.txtowner設定rwx的許可權,給其他所有使用者設定rx許可權因為要計算每一種使用者的許可權,多用於批次處理許可權。對使用者單獨設定許可權多用英文,而非數位

許可權細化的問題,chmod最多只有三個許可權組,當有多個使用者,並且每個使用者的許可權都不一樣時,chmod有局限性。 

ACL(setfacl/getfacl)

檔案和資料夾的許可權:

  • 如果有多個使用者組,許可權設定是很複雜的事情,需要仔細規劃(ACLChmod混合使用容易產生一些許可權問題,建議單獨使用)
  • 資料夾的讀許可權:可以列出目錄下內容
  • 資料夾執行許可權:可以進入到資料夾中,執行切換目錄等操作
  • 資料夾的寫許可權:可以在資料夾中增刪檔案
  • 使用者對某個檔案有了rwx許可權,不代表使用者有權刪除該檔案,只代表對檔案內容有了刪除許可權,要能對檔案級別進行操作,需要設定相應的資料夾的w許可權。

getfacl filename/filedirectory

  • 檢視檔案/資料夾 許可權:結果會展示usergroupother的整體許可權,以及特殊使用者的許可權

setfacl -m u:username:rwx filename

  • 給某個使用者新增對某個檔案或者資料夾的特殊許可權
  • 給普通使用者新增完相應許可權以後,root也會有相應的許可權(理論上root擁有最多的許可權)

setfacl -x u:username filename

  • 刪除使用者對某個檔案或者是資料夾的特殊許可權 

SUDO

簡介

  • 不同於chmod/acl 設定某個檔案的許可權,sudo主要是為非root使用者增加系統的處理和執行許可權。比如只有rootuseradd許可權,通過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


IT145.com E-mail:sddin#qq.com