2019年11月23日 星期六

Linux sudo 設定檔 sudoers 寫法

通常要增加 sudo 使用者,可寫在 /etc/sudoers 設定檔中,
看 CentOS 7 的 /etc/sudoers 設定檔,最後會去讀取 /etc/sudoers.d/ 資料夾底下所有檔案
所以也可在 /etc/sudoers.d/ 另外新增檔案管理。

編輯設定檔,建議使用 visudo 指令,使用 visudo 指令,儲存時,會對語法格式做檢查。

直接編輯 /etc/sudoers 檔案,可不用指定檔案
$ visudo

編輯指定檔案,例如 /etc/sudoers.d/xyz
$ visudo -f /etc/sudoers.d/xyz

系統說明文件
$ man sudoers

sudo 使用者設定寫法
使用者帳號 登入者來源主機=(切換到哪個身分執行指令) 可執行的指令

範例1:
設定使用者 xyz,可於任何來源主機、用任何身分、執行所有指令操作
xyz ALL=(ALL) ALL

範例2:
使用 Cmnd_Alias 別名,將指令分類整理
Cmnd_Alias CMD_COMM = /bin/cd, /bin/ls, /bin/cat, /bin/less, /bin/tail, /bin/head, /bin/last, /bin/lastb
Cmnd_Alias CMD_SERVICE = /bin/systemctl
Cmnd_Alias CMD_NGINX = /bin/vi /etc/nginx/*, /bin/cp -i /etc/nginx/*, /bin/rm -i /etc/nginx/*, /bin/mv -i /etc/nginx/*, /bin/scp /etc/nginx/*
Cmnd_Alias CMD_PHP = /bin/vi /etc/php*, /bin/cp -i /etc/php*, /bin/rm -i /etc/php*, /bin/mv -i /etc/php*, /bin/scp /etc/php*
Cmnd_Alias CMD_HOME = /bin/vi /home/*, /bin/cp -i /home/*, /bin/rm -i /home/*, /bin/mv -i /home/*, /bin/scp /home/*, /bin/chown nginx\:nginx -R /home/*, /bin/chmod [0-9][0-9][0-9] /home/*

xyz ALL=(root) CMD_COMM, CMD_SERVICE, CMD_NGINX, CMD_PHP, CMD_HOME
如果指令包含「,」、「:」、「=」、「\」,這些特殊字元,須用「\」脫逸。
例如「/bin/chown nginx\:nginx -R /home/*」
除了Cmnd_Alias,其他可用的別名還有User_Alias、Runas_Alias、Host_Alias


參考:
非常Linux——sudoers文件的写法 - 让梦想从这里起飞…… - CSDN博客
sudo - Chown in sudoers file : Safe or not? - Server Fault
Sudoers Manual
如何让用户在Linux上使用sudoedit安全地编辑文件
Linux普通使用者無法使用sudo處理及sudoers設定 - IT閱讀


沒有留言:

張貼留言