Linux sudoers 文件用于定義用戶和用戶組的權限,以便他們可以使用 sudo 命令執行特權操作
注釋:以 # 開頭的行是注釋行,不會被解析。
別名(Alias):別名可以簡化配置,避免重復。有四種類型的別名:User_Alias、Runas_Alias、Host_Alias 和 Cmnd_Alias。別名定義的語法如下:
類型_別名 名稱 = 列表
例如,定義一個用戶別名:
User_Alias ADMINS = alice, bob
用戶規則:用戶規則定義了哪些用戶可以執行哪些命令。規則的基本語法如下:
用戶名/用戶組 主機名=(運行用戶) 命令
例如,允許用戶 alice 在本地主機上以 root 用戶身份執行所有命令:
alice localhost=/bin/bash
使用別名定義的規則示例:
ADMINS ALL=(ALL) ALL
命令參數:可以為命令添加參數,以限制用戶只能使用特定的參數執行命令。例如,允許用戶 alice 使用 -l 參數執行 ls 命令:
alice ALL=(ALL) /bin/ls -l
默認選項:可以為用戶設置默認選項,例如要求輸入密碼或者保持環境變量。默認選項的語法如下:
Defaults:用戶名/用戶組 選項
例如,要求用戶 alice 在執行命令時輸入密碼:
Defaults:alice requiretty
包含其他配置文件:可以將配置分散到多個文件中,以便更好地組織和管理。使用 @include 指令包含其他配置文件:
@include /path/to/other/sudoers.file
權限繼承:可以通過從其他用戶或用戶組繼承權限來簡化配置。例如,讓用戶 alice 繼承用戶 bob 的權限:
alice ALL=(ALL) ALL, bob
了解這些語法要點有助于正確編輯 sudoers 文件,以便實現對用戶和用戶組的精細權限控制。在編輯 sudoers 文件時,建議使用 visudo
命令,因為它會檢查語法錯誤,以防止因錯誤配置而導致的問題。