賬號和許可權管理

无敌小鲁班發表於2024-04-14

目錄
  • 管理使用者賬號和組賬號
    • (1)Linux基於使用者身份對資源訪問進行控制:
    • (2)使用者賬號檔案/etc/passwd、/etc/shadow
      • (1)新增使用者賬號-useradd
      • (2)設定/更改使用者口令(修改使用者密碼)-passwd
      • (3)修改使用者賬號的屬性(修改已存在的使用者)-usermod
      • (4)刪除使用者-userdel
      • (5)使用者賬號的初始配置檔案
    • (3)組賬號檔案
      • (1)新增組賬號-groupadd
      • (2)新增/刪除組成員-gpasswd
      • (3)刪除組賬號-groupdel
      • (4)查詢賬號組資訊-groups
        • (1)查詢使用者組的資訊
        • (2)查詢使用者賬號的登入屬性-finger
  • 管理目錄和檔案的屬性
    • (1)檢視檔案/目錄的許可權和歸屬
    • (2)設定檔案和目錄的許可權-chmod
    • (3)設定檔案和目錄的歸屬-chown
    • (4)設定目錄和檔案的預設許可權-umask

管理使用者賬號和組賬號

(1)Linux基於使用者身份對資源訪問進行控制:

使用者賬號:
超級使用者:root,在系統中具有最高許可權;
普通使用者:由root或其他管理員建立的使用者,預設只具有低許可權;
程式使用者:用於給用用程式執行的低許可權使用者,一般不允許登入系統。

組賬戶:
基本組:使用者加入的第一組;
附加組:使用者額外加入的除了基本組以外的組。

UID:使用者賬號ID
GID:組賬號ID

root的UID和GID都固定為0

centos7以前 從centos7開始
程式使用者預設的UID/GID範圍 1~499 1~999
普通使用者預設的UID/GID範圍 500~60000 1000~60000

(2)使用者賬號檔案/etc/passwd、/etc/shadow

使用者賬號檔案/etc/passwd

儲存使用者名稱稱、宿主目錄、登入Shell等基本資訊
檔案位置:/etc/passwd
每一行對應一個使用者的賬號記錄

七個欄位
使用者名稱:x密碼佔位符:UID:GID:使用者說明:家目錄:登入shell

允許登入系統/bin/bash 不允許登入系統/sbin/nologin /bin/false

使用者賬號檔案/etc/shadow

儲存使用者的密碼、賬號有效期等資訊
檔案位置:/etc/shadow
每一行對應一個使用者的密碼記錄

九個欄位
使用者名稱:密碼字串:上一次修改密碼的時間:密碼最短有限期:密碼最長有限期:密碼過期提前告警的時間:密碼過期禁用使用者的時間:賬號失效的時間:空

*注:從1970.1.1開始算起;預設為0不限制;預設為99999永不過期;預設為7

(1)新增使用者賬號-useradd

useradd [選項]... 使用者名稱

常用選項
-u 指定UID
-g 基本組名或GID
-G 附加組名或GID
-d 指定家目錄
-s 指定登入shell
-M 不建立家目錄,不可與-d同時使用
-e YYYY-MM-DD 指定賬號失效日期

*注:useradd=adduser

在/etc/passwd 檔案和/etc/shadow 檔案的末尾增加該使用者賬號的記錄。
若未明確指定使用者的宿主目錄,則在/home目錄下自動建立與該使用者賬號同名的宿主目錄,並在該目錄中建立使用者的各種初始配置檔案。
若沒有明確指定使用者所屬的組,則自動建立與該使用者賬號同名的基本組賬號,組賬號的記錄資訊將儲存到/etc/group 和/etc/gshadow 檔案中。

(2)設定/更改使用者口令(修改使用者密碼)-passwd

passwd [選項]... 使用者名稱

常用選項
-d 清空使用者密碼
-l 鎖定/禁用使用者
-u 解鎖使用者
-S 檢視鎖定狀態

*注:你指定使用者名稱時,修改當前賬號的密碼
修改使用者密碼兩種方法
echo 密碼 | passwd --stdin 使用者名稱
echo 使用者名稱:密碼 | chpaasswd

(3)修改使用者賬號的屬性(修改已存在的使用者)-usermod

usermod 使用者名稱 [選項]... 新使用者

常用選項
-l 修改使用者名稱
-L 鎖定/禁用使用者
-U 解鎖使用者
-u 指定UID
-g 基本組名或GID
-G 附加組名或GID
-d 指定家目錄
-s 指定登入shell
-e YYYY-MM-DD 指定賬號失效日期

usermod 使用者名稱 -l 新使用者名稱 #修改使用者名稱

(4)刪除使用者-userdel

userdel [-r] 使用者名稱
*注:-r代表刪除使用者時,家目錄也會一起刪除

(5)使用者賬號的初始配置檔案

檔案來源:
useradd命令新增一個新的使用者賬號後會在該使用者的宿主目錄中建立一些初始配置檔案;這些檔案來自於賬號模版目錄/etc/skel/,基本上都是隱藏檔案。

主要的使用者初始配置檔案:
~/.bash_profile
~/.bashrc
~/.bash_logout

系統環境初始化配置檔案:
/etc/profile /etc/bashrc #對所有使用者有效

使用者環境初始化配置檔案:
~/.bash_profile ~/.bashrc ~/.bash_logout #只對當前使用者有效

設定使用者每次登入時要執行的命令:
/etc/profile ~/.bash_profile

設定切換shell環境時(包括登入系統時)要執行的命令:
/etc/bashrc ~/.bashrc

設定退出登入或shell環境時執行的命令:
~/.bash_logout

(3)組賬號檔案

與使用者賬號檔案相類似:
/etc/group:儲存組賬號基本資訊
/etc/gshadow:儲存組賬號的密碼資訊

/etc/group 有4個欄位:
組賬號名:x佔位符:GID號:組賬號成員

(1)新增組賬號-groupadd

groupadd [-g GID] 組賬號名

(2)新增/刪除組成員-gpasswd

gpasswd 組名 [選項].. 使用者名稱名

常用選項
-a 新增組成員
-d 刪除組成員
-M 使用者1,使用者2,... 重新定義(覆蓋原來成員)組成員列表,以逗號分隔

(3)刪除組賬號-groupdel

groupdel 組賬號名

(4)查詢賬號組資訊-groups

(1)查詢使用者組的資訊

proup 使用者名稱

查詢使用者身份標識
id 使用者名稱

(2)查詢使用者賬號的登入屬性-finger

finger [使用者名稱]
*注:需要先進行安裝finger軟體包

查詢登入系統使用者:
w、who、users

管理目錄和檔案的屬性

(1)檢視檔案/目錄的許可權和歸屬

(2)設定檔案和目錄的許可權-chmod

①chmod [ugoa] [+-=] [rwx]

*注:u、g、o、a分別表示:屬主、屬組、其他使用者、所有使用者;
+、-、=分別表示:增加、去除、重新定義許可權;
r、w、x分別表示:讀、寫、執行。

②chmod [-R] XXX 檔案/目錄

*注:#-R表示遞迴修改目錄及其所有子目錄和檔案許可權;
XXX數字表示:rwx的數字表示421

(3)設定檔案和目錄的歸屬-chown

chown [-R] 屬主 檔案/目錄 #修改屬主
chown [-R] :屬組 檔案/目錄 #修改屬組
chown [-R] 屬主:屬組 檔案/目錄 (chown [-R] 屬主.屬組 檔案/目錄) #修改屬主和屬組

(4)設定目錄和檔案的預設許可權-umask

umask作用:
控制新建立的檔案或者目錄的許可權;預設許可權去除umask的許可權為新建的檔案或者目錄的許可權。

設定預設許可權: umask XXX
查詢umask的值: umask

檔案的最大預設許可權為 6 ; 目錄的最大預設為 7
新建的檔案/目錄的預設許可權 = 最大預設許可權 - umask值
檔案666-022=644
目錄777-022=755

相關文章