備註:
- 本教學課程隨附於 Oracle 提供的免費實驗室環境。
- 此範例使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值替代成雲端環境的特定值。
在 Oracle Linux 上建立使用者與群組
簡介
下列教學課程提供在 Oracle Linux 上執行使用者和群組管理的逐步程序。您將會建立使用者和群組、實行使用者專用群組,以及授予使用者更高的權限。本教學課程的適用對象是 Oracle Linux 8 個使用者,但是其他 Oracle Linux 版本也提供這些命令。
目標
在本實驗室中,您將:
- 建立新使用者並探索使用者的本位目錄
- 建立新群組並將使用者新增至群組
- 運用使用者專用群組配置並實作目錄的寫入存取
- 管理用於授予 root 權限的
sudo
指令
軟硬體需求
- 已安裝 Oracle Linux 8 的系統
注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics 以取得連線和其他使用指示。
管理使用者帳號
在本節中,您可以使用指令行公用程式建立新的使用者帳戶、檢視新增使用者時更新的檔案、修改使用者帳戶、設定新使用者的密碼及以新使用者身分登入。
-
開啟終端機並連線至您的 Oracle Linux 8 執行處理。
-
成為 root 使用者。
sudo su -
-
以 root 使用者身分新增名為 alice 的使用者。
useradd alice
使用者會新增至
/etc/passwd
檔案。 -
檢視
/etc/passwd
檔案中的 alice 項目。grep alice /etc/passwd
執行的結果顯示:
- 新使用者的 UID 和 GID 相同 (
1001
)。 - 已為新使用者 (
/home/alice
) 建立主目錄。 - 新使用者的預設 Shell 為
/bin/bash
。
- 新使用者的 UID 和 GID 相同 (
-
檢視本位目錄。
ls -l /home
在此範例中,opc 使用者已經存在。
已為新使用者建立本位目錄,因為/etc/login.defs
中的 CREATE_HOME 參數設為yes
。 -
檢視
/etc/login.defs
檔案中的 CREATE_HOME 參數。grep CREATE_HOME /etc/login.defs
-
檢視新使用者的預設設定,儲存在
/etc/default/useradd
中。cat /etc/default/useradd
SKEL 參數設定為
/etc/skel
。 -
檢視
/etc/skel
目錄的內容。ls -la /etc/skel
-
檢視 alice 本位目錄的內容。
ls -la /home/alice
SKEL (
/etc/skel
) 的內容會複製到新使用者的主目錄。 -
檢視
/etc/group
檔案中的新 alice 項目。grep alice /etc/group
因為 Oracle Linux 8 使用使用者專用群組 (UPG) 配置,所以在建立 alice 使用者時建立一個新的專用群組 (alice、GID=1001)。
-
修改 alice 使用者的 GECOS 資訊。修改 GECOS 資訊之前和之後,檢視
/etc/passwd
檔案中的 alice 項目。grep alice /etc/passwd usermod -c "Alice Smith" alice grep alice /etc/passwd
-
為 alice 使用者建立
AB*gh246
的密碼。為 alice 建立密碼之前和之後,請先檢視/etc/shadow
檔案中的 alice 項目。grep alice /etc/shadow passwd alice grep alice /etc/shadow
alice 的
!!
會由雜湊的密碼值取代。 -
結束 root 登入並以 alice 使用者身分登入。請在提示時提供
AB*gh246
的密碼。exit su - alice
-
確認您是 alice 使用者,且您的目前目錄是 alice 使用者主目錄。
whoami pwd
-
結束 alice 使用者的 Shell,成為 root 使用者。
exit sudo su -
-
以 root 使用者身分新增在本實驗室中稍後使用的使用者 oracle。
useradd oracle
-
為 oracle 使用者建立
XY*gh579
密碼。passwd oracle
管理群組科目
在這個區段中,您可以建立新的群組帳戶,並新增使用者至此新群組。
-
以 root 使用者身分新增名為 staff 的群組。
groupadd staff
群組會新增至
/etc/group
檔案。 -
檢視
/etc/group
檔案中最後 10 個項目。tail /etc/group
新群組的 GID (
1003
) 遞增為 1。 -
將 alice 使用者新增至 staff 群組。檢視
/etc/group
檔案中的 staff 群組項目。usermod -aG 1003 alice grep staff /etc/group
alice 使用者在 staff 群組中具有次要群組成員。
-
檢視 alice 的主要群組成員資格。
grep alice /etc/passwd
alice 使用者的主要群組仍然是
1001
。
實行使用者專用群組
在這個區段中,您可以使用「使用者專用群組」配置,為不同的使用者提供單一目錄中檔案的寫入存取權。
-
以 root 使用者身分建立
/staff
目錄。mkdir /staff
-
檢視
/staff
目錄及其權限。ls -ld /staff
-
將
/staff
目錄的群組擁有權變更為 staff 群組。-R
選項 (遞迴) 會設定/staff
內檔案和目錄的群組。在變更群組擁有權之後檢視/staff
目錄及其權限。chgrp -R staff /staff ls -ld /staff
/staff
目錄的所有者仍然是 root,但群組現在是 staff。 -
在
/staff
目錄上設定 setgid 位元。然後檢視/staff
目錄的權限。chmod -R 2775 /staff ls -ld /staff
/staff
目錄的群組權限已變更。 -
將 oracle 使用者新增至 staff 群組。在新增 oracle 使用者後,檢視
/etc/group
檔案中的 staff 項目。usermod -aG staff oracle grep staff /etc/group
alice 和 oracle 使用者在 staff 群組中都有次要群組成員身分。
-
成為 oracle 使用者。系統不會提示您輸入 oracle 使用者的密碼,因為您目前是 root 使用者。確認您是 oracle 使用者,且目前的目錄為 oracle 使用者本位目錄。
su - oracle whoami pwd
-
顯示 oracle 使用者的群組成員。
groups
oracle 使用者屬於兩個群組 - oracle 與 staff。
-
變更至
/staff
目錄。在名為oracle_file
的/staff
目錄中建立新檔案。顯示新檔案的權限與所有權。cd /staff touch oracle_file ls -l oracle_file
staff 群組的權限都是讀取 / 寫入。
-
成為 alice 使用者。請在提示時提供
AB*gh246
的密碼。確認您是 alice 使用者。su - alice whoami
-
顯示 alice 使用者的群組成員身分。
groups
alice 使用者屬於兩個群組 - alice 和 staff。
-
變更至
/staff
目錄。在名為alice_file
的/staff
目錄中建立新檔案。顯示新檔案的權限與所有權。cd /staff touch alice_file ls -l
staff 群組的兩個檔案都會讀取 / 寫入權限。
-
以 alice 使用者身分使用
touch
指令更新oracle_file
上的時戳。檢視檔案以驗證時間已變更。touch oracle_file ls -l
更新時戳會將檔案的寫入權限視為 alice 使用者,即使檔案是由 oracle 使用者建立的。
-
結束 alice 使用者的 Shell,以及 oracle 使用者 Shell,回到 root 使用者的 Shell。確認您是 root 使用者。
exit exit whoami
選項 1:將提升的權限授予使用者
在這個區段中,您可以透過新增項目至 /etc/sudoers
檔案,將 sudo
權限授予使用者。
-
成為 alice 使用者。系統不會提示您輸入 alice 密碼,因為您目前是 root 使用者。確認您是 alice 使用者。
su - alice whoami
-
以 alice 使用者身分嘗試新增 newuser。
useradd newuser
alice 使用者沒有新增 newuser 的權限。
-
在先前的
useradd
指令之前插入sudo
指令以新增 newuser。請在提示時提供AB*gh246
的密碼。sudo useradd newuser
在
/var/log/secure
檔案中回報沒有適當授權的嘗試發出此管理員命令。 -
結束 alice 使用者的 Shell,回到 root 使用者的 Shell。檢視
/var/log/secure
檔案中的 sudoers 項目。exit grep sudoers /var/log/secure
嘗試使用
/sbin/useradd
指令的 alice :user NOT in sudoers 項目位於/var/log/secure
檔案中。範例中顯示多個項目。您可能只有單一項目。 -
以 root 使用者身分使用
visudo
指令編輯/etc/sudoers
檔案。visudo
這個指令會使用
vim
編輯器開啟/etc/sudoers
檔案。 -
在
/etc/sudoers
檔案中,新增下列行以授予 alice 使用者執行/sbin/useradd
指令的權限。alice ALL=(ALL) /sbin/useradd
新項目會反白顯示。儲存您的變更並結束
visudo
指令。 -
成為 alice 使用者。嘗試不使用
sudo
指令新增 newuser。插入sudo
指令,並嘗試一次新增 newuser。請在提示時提供AB*gh246
的密碼。su - alice useradd newuser sudo useradd newuser
-
確認已新增 newuser。
grep newuser /etc/passwd ls -l /home
newuser 現在已存在。使用
/etc/sudoers
檔案中的 alice 項目,alice 使用者擁有執行/sbin/useradd
指令的sudo
權限。 -
結束 alice Shell,回到 root shell。請使用
visudo
指令,並從您稍早在這個實驗室中新增的/etc/sudoers
檔案中刪除 alice 項目。exit visudo
要刪除的項目會反白顯示。刪除整行,或在此範例中,插入
#
字元以註解行。儲存您的變更並結束visudo
指令。 -
確認 alice 使用者不能再新增使用者。成為 alice 使用者。嘗試使用
sudo
指令新增 anotheruser。su - alice sudo useradd anotheruser
在
/var/log/secure
檔案中回報沒有適當授權的嘗試發出此管理員命令。 -
結束 alice 使用者的 Shell,回到 root 使用者的 Shell。
exit
選項 2:將提升的權限授予使用者
在這個區段中,您可以將使用者新增至輪群組以授予 sudo
權限。
-
以 root 使用者的身分,檢視
/etc/sudoers
檔案中的 wheel 項目。grep wheel /etc/sudoers
/etc/sudoers
檔案中的 %wheel ALL= (ALL) ALL 項目允許 wheel 群組的所有成員在前面加上sudo
時執行任何命令。 -
將 alice 使用者新增至 wheel 群組。確認 alice 使用者位於 wheel 群組中。
usermod -aG wheel alice grep wheel /etc/group
使用者 alice 在wheel 群組中有次要群組成員。
-
成為 alice 使用者。系統不會提示您輸入 alice 密碼,因為您目前是 root 使用者。確認您是 alice 使用者。
su - alice whoami
-
以 alice 使用者身分使用
sudo useradd
指令新增 thirduser。若出現提示,請提供AB*gh246
的密碼。sudo useradd thirduser
-
確認已新增該 thirduser。
ls
指令會一直失敗,直到您插入sudo
並提供 alice 密碼。這確認 alice 使用者擁有sudo
權限。grep thirduser /etc/passwd ls -la /home/thirduser sudo ls -la /home/thirduser
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或是存取更多免費學習內容至 Oracle Learning YouTube 通道。此外,瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請瀏覽 Oracle Help Center。
Create users and groups on Oracle Linux
F49503-04
May 2022
Copyright © 2021, Oracle and/or its affiliates.