注意:
- 本教學課程包含在 Oracle 提供的免費實驗室環境中。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室之後,請將這些值取代為您雲端環境特有的值。
在 Oracle Linux 上建立使用者與群組
簡介
下列教學課程提供在 Oracle Linux 上執行使用者和群組管理的逐步程序。您將會建立使用者和群組、實行使用者專用群組,以及授予使用者更高的權限。
目標
在此實驗室中,您將:
- 建立新使用者並探索使用者的本位目錄
- 建立新群組並將使用者新增至群組
- 使用使用者專用群組配置及實行目錄寫入存取權
- 管理用於授予 root 權限的
sudo
指令
軟硬體需求
- 已安裝 Oracle Linux 的系統
注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics,瞭解連線和其他使用指示。
管理使用者帳號
在此區段中,您可以使用命令行公用程式建立新的使用者帳戶、檢視新增使用者時所更新的檔案、修改使用者帳戶、設定新使用者的密碼,以及以新使用者身分登入。
-
開啟終端機並連線至您的 Oracle Linux 執行處理。
-
成為 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 使用使用者專用群組 (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 群組中有次要群組成員。
-
檢視價格的主要群組成員。
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
目錄。在/staff
目錄中建立名為oracle_file
的新檔案。顯示新檔案的權限和所有權。cd /staff touch oracle_file ls -l oracle_file
staff 群組的權限為讀取 / 寫入。
-
成為 alice 使用者。在提示時提供
AB*gh246
的密碼。確認您為 alice 使用者。su - alice whoami
-
顯示價格使用者的群組成員資格。
groups
alice 使用者屬於兩個群組 - alice 和 staff。
-
變更至
/staff
目錄。在/staff
目錄中建立名為alice_file
的新檔案。顯示新檔案的權限和所有權。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 使用者擁有sudo
權限,可執行/sbin/useradd
指令。 -
結束 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 使用者。您並不是提示輸入 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-05
July 2022
Copyright © 2021, Oracle and/or its affiliates.