Linux 使用者與權限管理完整教學

Linux 使用者與權限完整教學|User 與權限管理實務範例

本篇文章完整介紹 Linux 使用者與權限管理,包括 useradd、usermod、chmod、chown、groupadd 及 sudo 設定。透過實務案例、指令對照表與排錯技巧,幫助系統管理者快速掌握使用者權限與安全管理策略。

Linux 使用者與權限管理概述

Linux 採多使用者、多群組架構管理系統安全與檔案存取權限,確保不同租戶或使用者間的資料隔離與操作安全。了解使用者、群組與權限的概念,是維護系統安全與執行自動化任務的基礎。

  • 新增、修改、刪除使用者帳號
  • 群組管理與附加群組設定
  • 檔案與目錄權限調整 (chmod / chown)
  • sudo 權限授予與限制
  • 實務排錯與安全案例分析
  • 批次管理與自動化操作

Linux 使用者與權限指令對照表

指令功能範例安全建議 / 注意事項
useradd新增使用者帳號sudo useradd -m username建立前先確認帳號名稱唯一,密碼需設定強度
usermod修改使用者屬性,如群組或名稱sudo usermod -aG groupname username避免誤加使用者至敏感群組
userdel刪除使用者帳號及家目錄sudo userdel -r username刪除前備份重要資料
passwd設定或修改使用者密碼sudo passwd username使用安全密碼並定期更新
groupadd新增群組sudo groupadd developers群組命名需明確,不重複
groups / id查看使用者所屬群組groups username / id username確認授權群組,避免權限混亂
chmod調整檔案/目錄權限chmod 755 filename避免開放敏感目錄給其他使用者
chown設定檔案/目錄擁有者與群組sudo chown user:group filename確保擁有者與群組正確,以免資料外洩
sudo以管理權限執行指令sudo command僅授權必要使用者,並留存操作日誌
批次操作對多個使用者或檔案同時操作for user in alice bob charlie; do sudo useradd -m $user; done執行前確認列表及順序,避免覆蓋或錯誤

實務案例與批次操作

案例一:useradd – 建立新使用者


# 建立單一使用者 alice 並建立家目錄
sudo useradd -m alice

# 設定 alice 的登入密碼(互動模式)
sudo passwd alice

# 批次建立使用者 bob、charlie、david
for user in bob charlie david; do
  sudo useradd -m $user      # 建立使用者及家目錄
  sudo passwd $user           # 設定密碼(互動模式)
done
# 版本註解:useradd 與 passwd 指令均正確,適用於所有現代 Linux 系統

案例二:usermod – 修改使用者屬性


# 將 alice 加入 developers 群組
sudo usermod -aG developers alice

# 將使用者名稱 alice 改為 alice_new
sudo usermod -l alice_new alice

# 批次將 bob、charlie、david 加入 developers 群組
for user in bob charlie david; do
  sudo usermod -aG developers $user
done
# 版本註解:usermod -aG 與 -l 語法正確,批次操作無誤

案例三:userdel – 刪除使用者


# 刪除單一使用者 alice_new 並刪除家目錄
sudo userdel -r alice_new

# 批次刪除使用者 bob、charlie、david
for user in bob charlie david; do
  sudo userdel -r $user
done
# 版本註解:userdel -r 可刪除家目錄與使用者帳號,語法正確

案例四:passwd – 修改密碼


# 修改使用者 bob 密碼(互動模式)
sudo passwd bob
# 版本註解:passwd 指令正確,需手動輸入新密碼

案例五:groupadd – 新增群組


# 建立新的群組 testers
sudo groupadd testers
# 版本註解:groupadd 語法正確,適用於現代 Linux

案例六:groups / id – 查看群組


# 查看 alice 所屬群組
groups alice

# 查看 alice UID、GID 及群組資訊
id alice
# 版本註解:groups 與 id 指令正確,可顯示群組及使用者資訊

案例七:chmod – 調整檔案權限


# 設定 /projectA 權限為 rwxr-xr-x
chmod 755 /projectA

# 設定 /projectB 權限為 rwx------
chmod 700 /projectB

# 批次修改 /projectA 下所有檔案權限為 644
for f in /projectA/*; do
  chmod 644 "$f"
done
# 版本註解:chmod 語法正確,迴圈加雙引號可避免空格問題

案例八:chown – 修改擁有者與群組


# 將 /projectA 擁有者改為 alice,群組改為 developers
sudo chown alice:developers /projectA

# 批次修改 /projectA 下所有檔案擁有者與群組
for f in /projectA/*; do
  sudo chown alice:developers "$f"
done
# 版本註解:chown 語法正確,適用於批次修改擁有者與群組

案例九:sudo – 以管理權限執行指令


# 系統更新
sudo apt update

# 重新啟動 Apache 服務
sudo systemctl restart apache2
# 版本註解:sudo apt 與 systemctl 語法正確,適用於現代 Linux 系統

FAQ 常見問題

如何查看使用者所屬群組?

使用 groups usernameid username 指令查看使用者所屬群組,必要時可比對 /etc/group 檔案。

chmod 755 與 chmod 700 差別?

755:擁有者可讀寫執行,其他使用者可讀執行;700:僅擁有者可讀寫執行。使用 700 適合私人資料夾,避免其他群組或使用者存取。

如何授權使用者執行特定命令?

透過 sudoers 設定,或將使用者加入 sudo 群組,再搭配命令限制,如 visudo 編輯,指定允許執行的命令,防止濫用。

如何查看使用者密碼最後更改時間?

使用 chage -l username 指令可以查看使用者密碼最後更改時間及過期資訊。

如何限制使用者只能登入特定終端?

編輯 /etc/ssh/sshd_config/etc/security/access.conf 來限制使用者登入特定終端或 IP。

如何批次修改多個檔案權限?

使用 for 迴圈搭配 chmod,如 for f in /dir/*; do chmod 644 $f; done,可快速批次修改。

如何批次變更檔案擁有者?

使用 chown 搭配 for 迴圈,如 for f in /dir/*; do chown user:group $f; done

如何檢查 sudo 執行紀錄?

查看 /var/log/auth.log 或使用 sudo journalctl _COMM=sudo,確認使用者執行指令與授權。

    PAGE TOP