Linux基礎之使用者和組

smileleooo發表於2024-04-30

目錄
  • 使用者的分類
  • 關於使用者的操作
    • 新增使用者useradd
    • 設定使用者的屬性usermod
    • 設定使用者的密碼passwd
    • 刪除使用者userdel
  • 使用者許可權控制sudo
  • 關於使用者組的操作

Linux 是一個多使用者多工的分時作業系統,為了對檔案和資源進行更好的許可權管理,產生了使用者和組。在Linux中,每個使用者都有一個唯一的使用者標識號UID,每個組也有一個唯一的組標識號GID。使用者可以屬於一個或多個組。

使用者的分類

  • 超級使用者:也稱為 root 使用者,是系統的管理員,擁有對系統的完全控制許可權。

  • 普通使用者:大多數的使用者都屬於此類,使用系統來完成日常任務。

  • 服務使用者:專門用於執行系統服務的,比如Web伺服器、資料庫伺服器等,通常被用來限制服務的許可權。

還有其他的為了系統正常工作所必需的使用者,比如虛擬使用者、系統使用者等。

在Linux中,使用者賬號、密碼、使用者組資訊和使用者組密碼均是存放在不同的檔案中。

  1. 使用者賬號檔案 /etc/passwd,每行定義一個使用者賬號資訊,每行由7個欄位組成,欄位之間用 : 分隔
root:x:0:0:root:/root:/bin/bash

# 賬號名稱:密碼:UID:GID:個人資料:主目錄:Shell
  1. 使用者密碼檔案 /etc/shadow,每行定義了一個使用者密碼資訊,行中各欄位用 : 隔開
root:$6$C86UcMH5uLEF1cuZ$gFTarzTT8RTy/9SPzJeA0gHIyH78ZgmkWvF14pR6thjdgqSQtr4RuoL4f87Hcfb.5Ux2lrDVFAkgUTkKiSMWh1::0:99999:7:::

# 登入名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌
  1. 使用者組賬號檔案 /etc/group,每行定義了一個組資訊,行中各欄位用 : 隔開
root:x:0:

# 組名:組密碼:gid:成員列表
  1. 使用者組密碼檔案 /etc/gshadow,每行定義了一個組密碼資訊,行中各欄位用 : 隔開
root:*::

# 組名:組密碼:組管理員:組成員

關於使用者的操作

新增使用者useradd

使用者組分為兩種:

  • 基本組:建立賬戶時,若沒有指定賬戶所屬的組,系統會建立一個和使用者名稱相同的組,這個組就是基本組。
  • 附加組:可以容納多個使用者,組中的使用者都具有組所擁有的權利。

建立一個使用者:

sudo adduser username

常用選項:

  • -m 建立使用者的同時,自動建立使用者的主目錄

  • -s 用於設定使用者的使用的shell,如果設定 -s /bin/nologin 則表示使用者不能使用命令列

  • -u 用於設定使用者uid,預設是自增的,透過該命令可以自定義,但要注意必須是1000+且不能重複

  • -g 設定使用者的基本組,可以是gid也可以是組名稱。組必須得存在

  • -G 設定使用者的附加組,可以是gid也可以是組名稱。組必須得存在

設定使用者的屬性usermod

常用選項:

  • -L 設定密碼鎖定,禁止使用者登入

  • -U 解鎖使用者賬戶,允許使用者登入

  • -l new_login 修改使用者的登入名

  • -s shell 修改使用者的登入shell

比如:

sudo usermod  -s /bin/bash smileleooo

# 修改使用者smileleooo的登入shell

設定使用者的密碼passwd

常用選項:

  • -l 鎖定使用者賬戶,鎖定賬戶後,使用者將無法登入

  • -u 解鎖被鎖定的使用者賬戶

  • -d 禁用密碼,使使用者無法使用密碼登入,通常與 -l 選項一起使用

  • -e 強制使用者在下次登入時更改密碼

  • -S 顯示使用者密碼的狀態資訊

比如:

sudo passwd -S root

# 顯示root使用者密碼的狀態資訊

刪除使用者userdel

刪除一個使用者:

sudo userdel smileleooo

這將會刪除名為smileleooo的使用者賬戶。但是預設不會刪除與使用者相關的檔案和目錄。

sudo userdel -r smileleooo

這樣就會連同使用者的主目錄一起刪除。

使用者許可權控制sudo

sudo 允許普通使用者以超級使用者(root)的許可權執行命令。/etc/sudoers 檔案檔案定義了哪些使用者可以使用 sudo 命令以及可以執行哪些命令。

sudo檔案中對許可權的描述,每一行定義了一個使用者或使用者組的授權資訊,包括使用者名稱、主機名(或 ALL 代表所有主機)、以及授權的命令。

比如:

smileleooo ALL = (root) /usr/bin/apt-get

# 允許smileleooo使用者以root的身份執行apt-get命令

臨時提權:可以在命令前加上 sudo 臨時提升許可權,而不必切換到超級使用者身份,一般需要使用者輸入密碼驗證使用者身份。

sudo的常用命令:

  • sudo -l :列出當前使用者可以執行的命令

  • sudo -u 使用者名稱 許可權命令 :以指定使用者的身份執行需要許可權的命令

  • sudo -b 命令 :讓命令在後臺執行

關於使用者組的操作

建立使用者組 groupadd

  • -r 表示新增系統使用者,它的預設id是1-999

  • -g 指定使用者組id

修改使用者組屬性 groupmod

  • -g 修改使用者組id

  • -n 修改使用者組名稱

新增/刪除組成員 gpasswd

  • -a 新增單使用者

  • -d 刪除使用者

  • -M 可同時新增多個使用者

刪除組賬戶 groupdel

  • groupdel 組名稱

被刪除的組若是基本組,則必須先刪除引用該基本組的使用者,然後再刪除該基本組。


若有錯誤,歡迎指正!o( ̄▽ ̄)ブ

相關文章