一、用戶與組 1.用戶與組的概念 在linux系統中,根據系統管理需要將用戶分為三種類型: 1.超級用戶:root是linux系統的超級用戶,對系統擁有絕對許可權。由於root用戶許可權太大,只有在進行系統管理、維護任務時使用root用戶,建議日常事物處理用普通用戶賬號。 2.普通用戶:普通用戶由roo ...
一、用戶與組
1.用戶與組的概念
在linux系統中,根據系統管理需要將用戶分為三種類型:
1.超級用戶:root是linux系統的超級用戶,對系統擁有絕對許可權。由於root用戶許可權太大,只有在進行系統管理、維護任務時使用root用戶,建議日常事物處理用普通用戶賬號。
2.普通用戶:普通用戶由root用戶創建,其許可權受到一定限制,一般只對自己家目錄擁有絕對許可權。
3.虛擬用戶:大多數由是在安裝系統及部分應用程式時自動添加,維護系統或相應程式正常運行,其最大特點是不能登錄系統。
用戶組分為基本組、附加組
用戶組是指具有共同特征用戶的集合,主要是方便對文件或目錄進行訪問許可權控制。
當用戶被創建時至少屬於一個用戶組,該組就是用戶的基本組。
當用戶加入其他組時,其加入的組就是該用戶的附加組。
UID和GID
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屬性,只能在目錄中建立或修改文件,不能刪除文件。