企業環境不直接提供 root 密碼,運維人員需通過普通賬號臨時提權。本文詳細對比 /etc/sudoers 三種授權方式、wheel 組策略、UID 0 修改法的優劣,給出生產環境推薦配置。
OS: Red Hat Enterprise Linux 6 Kernel: 2.6.32-279.el6.x86_64
visudo # 必須用 visudo 防止語法錯誤導致無法 sudo # 用戶級授權 xcg ALL=(ALL) ALL # 需輸入當前用戶密碼 kongzhong ALL=(ALL) NOPASSWD:ALL # 免密提權(慎用) # 組級授權(取消註釋) %wheel ALL=(ALL) ALL
cp /etc/sudoers /etc/sudoers.bakchmod 640 /etc/sudoers → 編輯 → chmod 440 /etc/sudoersvisudo # 確保 %wheel ALL=(ALL) ALL 未註釋 usermod -G wheel username # 將用戶加入 wheel 組(注意 -G 追加,-g 替換主組) id username # 驗證組歸屬
# 原:kongzhong2:x:504:504:... # 改:kongzhong2:x:0:500:... # 直接獲得 root 權限,繞過 sudo 審計,極高風險!
| 場景 | 推薦方式 | 關鍵點 |
|---|---|---|
| 個人臨時提權 | 方式一 + NOPASSWD | 僅限受信任賬號,配合日志審計 |
| 團隊標準化運維 | 方式二 | wheel 組集中管理,定期審核成員 |
| 自動化腳本/CI | 專用服務賬號 + 精確命令白名單 | cmd_alias 限制可執行命令 |
Defaults logfile=/var/log/sudo.log 獨立記錄 sudo 操作。Defaults requiretty 強制分配終端,防止腳本濫用。Defaults !visiblepw 禁止明文密碼參數。auditctl -w /etc/sudoers -p wa 監控配置變更。權限最小化、操作可審計、配置可追溯,是 Linux 特權管理的鐵律。