首頁 > 軟體

關於 Linux系統使用者、組和許可權管理

2020-06-16 16:36:51

一、使用者與組

1.使用者與組的概念

在Linux系統中,根據系統管理需要將使用者分為三種型別:

1.超級使用者:root是linux系統的超級使用者,對系統擁有絕對許可權。由於root使用者許可權太大,只有在進行系統管理、維護任務時使用root使用者,建議日常事物處理用普通使用者賬號。

2.普通使用者:普通使用者由root使用者建立,其許可權受到一定限制,一般只對自己家目錄擁有絕對許可權。

3.虛擬使用者:大多數由是在安裝系統及部分應用程式時自動新增,維護系統或相應程式正常執行,其最大特點是不能登入系統。

使用者組分為基本組、附加組

使用者組是指具有共同特徵使用者的集合,主要是方便對檔案或目錄進行存取許可權控制。

當使用者被建立時至少屬於一個使用者組,該組就是使用者的基本組。

當使用者加入其他組時,其加入的組就是該使用者的附加組。

UID和GID

ID範圍
ID型別 root 系統使用者 普通使用者
UID 0 1-499 500+
GID 0 1-499 500+

與使用者和組相關的組態檔

1./etc/passwd

2./etc/shadow

3./etc/gruop

4./etc/gshadow

4./home/xx 使用者家目錄

6./var/log/mail/xx 使用者郵箱

7/etc/skel 在使用者被建立時家目錄下的隱藏檔案是從/etc/skel/複製過去的。

 

2.使用者賬號和組的管理

useradd 命令 建立使用者

-u 選項 指定uid

-g 選項 指定基本組

-G 選項 指定附加組

-d 選項 指定家目錄

-e 選項 指定賬戶失效時間

-M 選項 不建立家目錄

-s 選項 指定登入shell

範例:建立一個FTP存取賬號ftpuser,禁止其登入,不為其建立家目錄

useradd -M -s /sbin/nologin ftpuser

***

passwd 命令 為使用者建立密碼

-d 選項 清空使用者密碼

-l 選項 鎖定使用者不能登入

-u 選項 解除鎖定

***

userdel 命令 刪除使用者

-r 選項 用於刪除家目錄

***

usermod 命令 修改賬號屬性

-d 選項 修改使用者家目錄

-l 選項 修改使用者名稱

-g 選項 修改使用者基本組

-G 選項 修改使用者附加組

su - 命令 用於切換使用者身份

***

groupadd 命令 用於新增使用者組

-g 選項 用於指定GID

***

gpasswd 命令 新增、刪除組成員

-a 選項 新增使用者

-d 選項 刪除使用者

***

groupdel 命令 刪除使用者組

groups 命令 檢視使用者組資訊

二、檔案和目錄許可權及歸屬

在多使用者作業系統中,處於安全考慮,需要為每個檔案和目錄設定存取許可權,嚴格規定每個使用者的許可權。

Linux系統中每一個檔案或目錄都被賦予兩種屬相:存取許可權、檔案所有者。

許可權含義
許可權 檔案 目錄
r 檢視檔案內容 檢視目錄內容ls
w 修改檔案內容 修改目錄下的內容(建立、移動、刪除檔案或目錄)
x 執行該檔案(程式或指令碼) 執行cd命令進入目錄

1.檢視檔案、目錄許可權

通過ls -l 檢視檔案詳細資訊

輸出資訊共7個欄位代表含義如下

1.第一組:代表檔案型別和檔案許可權其中第一字元代表如下含義:

  “-”表示普通檔案、“d”表示目錄、“l”表示符號連結、“c”代表字元裝置、“b”代表塊裝置。

2.第二組:代表硬連結數,檔案預設為1,目錄預設為2。

3.第三組:檔案所有者

4.第四組:檔案所屬組

5.第五組:代表檔案大小(單位為位元組B)目錄只顯示目錄本身大小一般情況下為4096B

6.第六組:檔案建立或修改時間

7.第七組:檔名

檔案許可權型別

2.設定檔案、目錄許可權

chmod 命令 用於更改檔案或目錄許可權

範例:useradd test 

   passwd test 

   密碼xxxxxx

   su - test

   pwd

   /home/test

   mkdir file1

   ls -l  file1

   drwxrwxr-x. 2 test test 4096 Sep 2 16:36 file1

   chmod g-w,o-x file1 

   ls -l file1

   drwxr-xr--.2 test test 4096 Sep 2 16:36 file1

檔案許可權數位表現形式

許可權項 執行 執行 執行
字元表示 r w x r w x r w x
數位表示 4 2 1 4 2 1 4 2 1
許可權分配 所有者 所屬組 其他人

   ls -l file1

   drwxr-xr--.2 test test 4096 Sep 2 16:36 file1

   chmod 755 file

   ls -l file1

   drwxr-xr-x--.2 test test 4096 Sep 2 16:36 file1

   chmod -R 可以遞回修改目錄下的所有檔案許可權

   root 使用者 umask 值 0022

   普通使用者 umask 值 0002

   root使用者建立目錄 時,生成目錄許可權為 777 - umask對應許可權 ,最終為 755

   root使用者建立檔案時,生成檔案許可權為 666 - umask對應許可權,最終為644

   普通使用者建立目錄時,生成目錄許可權為 777 - umask對應許可權,最終為 775

   普通使用者建立檔案時,生成檔案許可權為 666 - umask對應許可權,最終為664

3.設定檔案、目錄歸屬

chown 命令

格式:chown 所有者 檔案或目錄

   chown :所屬組 檔案或目錄

   chown 所有者:所屬組 檔案或目錄

例如:chown root:root  /home/test/file1

   ls -l /home/test/file1

   drwxr-xr-x,2 root root 4096 Sep 2 16:36 file1

三、系統高階許可權設定

1.設定存取控制列表ACL(Access Control List)

Linux系統中許可權設定,僅有3種身份,3種許可權,通過配合chmod和chown命令來對檔案或目錄進項設定。如果進項複雜許可權設定,如某個目錄要開放為給某個特定使用者使用時,傳統方法不能滿足需求。

例如:/home/project 目錄,所有者是student使用者,所屬組是users組,預設許可權為770。現有使用者teacher,所屬組為teacher,希望對/home/project/目錄具有rwx許可權;還有使用者test,所屬組??test,希望對/home/project/目錄具有讀rx許可權。

顯然利用chmod和chown命令無法完成上述要求,因而,在Linux系統提供了ACL來完成這種複雜許可權設定。

設定ACL

setfacl 【選項】  設定值   檔案目錄

-m 選項 設定一個ACL規則

-x 選項 取消一個ACL 規則

-b 選項 取消所有的ACL規則

-d 選項 設定預設ACL規則 (對當前目錄設定ACL許可權後,未來在其目錄下建立的檔案或目錄繼承該目錄的ACL許可權)

-k 選項 取消預設許可權

-R 選項 用於遞回設定(對當前目錄設定ACL許可權,該目錄下已有的子目錄及檔案也擁有相應的ACL許可權)

例如:setfacl -m u:teacher:rwx  /home/project

   setfacl -m u:test:rx /home/project

getfacl 命令 檢視檔案目錄ACL許可權

   setfacl -x u:teacher /home/project

   setfacl -b /home/project

##ACL需要分割區開啟acl,通過dumpe2fs檢視。Linux系統預設開啟acl,如果分割區沒有開啟acl,可以通過設定/etc/fstab檔案開啟##

例如:/dev/sdb1  /data  ext4  defaults,acl  0  0

2.設定特殊許可權:SUID/SGID/Sticky Bit

SUID許可權:主要設定於可執行檔案,對目錄設定無效,當其他人執行該檔案時,自動獲取該檔案所有者身份,設定命令為chmod u+s file。

例如: ls -l /usr/bin/passwd

   -rwsr-x-r-x, 1 root root 30768 11月 24 2017 /usr/bin/passwd

SGID許可權:

    設定與目錄,當目錄設定SGID後,在該目錄下建立的檔案或子目錄自動繼承該目錄的所屬組

    設定與檔案,當檔案設定SGID後,該檔案無論使用者是誰,在其執行時將以該檔案所有者身份執行。

例如: chmod g+s file、dirfile

設定黏滯位許可權:

當一個使用者對一個目錄擁有寫許可權,該使用者能刪除該檔案下的所有檔案。

黏滯位許可權主要針對其他人設定,使用命令chmod設定目錄許可權時,“o+t”、“o-t”可以新增或者刪除黏滯位許可權。

當一個目錄設定黏滯位許可權後,對該目錄具有寫許可權的其他使用者不能刪除別的使用者建立的檔案或目錄,只能刪除自己建立的檔案或目錄。

例如 /tmp 和 /var/tmp

  ls -ld  /tmp

  drwxrwxrwt. 3 root root 4096 9月 2 18:27 /tmp

  ls -ld  /var/tmp

   drwxrwxrwt. 2 root root 4096 9月 2 18:27 /var/tmp

3.設定隱藏許可權chattr

chattr設定隱藏許可權,lsattr檢視隱藏許可權。

chattr +i

chattr +a

chattr -i

chattr -a

i:屬性,如果對檔案設定i屬性,不允許對檔案進行刪除、改名、新增資料、

    對目錄設定i屬性,不能建立刪除檔案,

a:屬性,如果對檔案設定a屬性,只能向檔案中追加資料,不能刪除或編輯檔案。

    對目錄設定a屬性,只能在目錄中建立或修改檔案,不能刪除檔案。


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