語法結構
用戶 主機=(切換身份) 是否免密 命令1, 命令2...
核心字段含義
(root):**可切換到 root 用戶身份**執行後續命令。省略時默認 `(root)`。
(ALL):可切換到**任意用戶**(包括 root)。
NOPASSWD::免密執行,如 `beinan ALL=(root) NOPASSWD: /bin/chown`。
示例解析
beinan ALL=(root) /bin/chown, /bin/chmod
# beinan 在任何主機,可 sudo -u root 執行 chown、chmod
# 等價於 sudo chown ...(默認切 root)
beinan ALL=(root) /bin/chown, (ALL) /bin/chmod
# chown 僅能以 root 身份;chmod 可以任意用戶身份(含 root)
驗證命令
sudo -l # 列出當前用戶權限
sudo -u root chmod 777 f # 顯式指定目標用戶
sudo -u otheruser chmod ... # 若配置 (ALL) 則允許
注意
- 命令路徑必須**絕對路徑**。
- 目標用戶必須存在於系統。
- 編輯務必用 `visudo` 防語法錯誤導致無法 sudo。