Contents

Linux - User and Group 帳號管理

Linux 作業系統為多人多工作業方式,故管理帳號將會是一個必修的課程,透過 Linux 指令可以很容易的創建帳號、群組及密碼。

1. 創建 User 帳號

1.1 useradd 指令

1
useradd [opstions] name

創建一個為 test 的 USER 並使用 id 查看該角色 UID

1
2
3
[root@serverc ~]# useradd test
[root@serverc ~]# id test
uid=1010(test) gid=1010(test) groups=1010(test)

1.2 進階參數

  1. -i : 指定 UID
  2. -s : 指定使用哪一種 Shell (預設 bash)
  3. -g : 指定群組 (預設同 User)
  4. -r : 創建系統帳號
  5. -d : 指定使用者家目錄
Note
UID 0 : 為 root 帳號
UID 1-999 : 為系統帳號(例如 apache、nginx、mysql 等)
UID 1000+ : 一般使用者帳號

2. 設定帳號密碼

在創建完帳號後,是沒有任何密碼,無法直接使用 ssh 遠端登入,可以透過 passwd 指定密碼

1
2
3
4
5
6
[root@serverc ~]# passwd test
Changing password for user test.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
Note
唯一能變更密碼的只有 roo 管理員,一般使用者帳號只能變更自己密碼(不需指定 user)

3. 創建 Group 群組

為什麼要有群組功能呢?試者想一個場景,假設有一個 A 檔案只能讓 John 及 Amy 查看並且編輯( root 當然也會有權限),只使用單一 User 帳號是無法達成的。故可以將 John 與 Amy 兩個人共同有一個群組,就可以一併有權限編輯 A 檔案了

3.1 groupadd 指令

1
groupadd [opstions] name

3.2 進階參數

  1. -g : 指定 GID
Note
GID 0 : 為 root 群組 UID 1-999 : 為系統群組 UID 1000+ : 一般使用者群組

4. User 帳號異動/修改

如果當一個使用者離職或是要變更該使用者 Shell 該如何做呢 ?

4.1 usermod 指令

1
usermod [options] name

不讓 test 使用者登入終端機

1
2
3
4
[root@serverc ~]# usermod -s /sbin/nologin test
[root@serverc ~]# su - test
Last login:  
This account is currently not available.

4.2 進階參數

  1. -g : 指定使用者歸類哪一個群組 ( 覆蓋 )
  2. -G : 指定使用者加入哪一個群組 ( append )
  3. -L : 停用/鎖定該使用者帳號
  4. -e : 指定使用者密碼過期更換週期
  5. -s : 指定使用者使用哪一種 shell
  6. -u : 解鎖使用者帳號
  7. -g : 指定使用者 GID
  8. -c : 註解

小結

雖然透過上述指令來管理帳號很方便,不過如果是企業有大量的帳號,就需要藉由 LDAP 或是 AD 來進行統一管理了。



如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!