星期六, 9月 17, 2022

更新sudoers檔案內容

一般更新 /etc/sudoers 檔案內容都是使用 visudo 指令進行;若是要管理 sudoer ,Ansible 可以用 community.general.sudoers 模組來管理。

那如果要在腳本裡更新,該怎麼做呢?這時候可以參考 How do I edit /etc/sudoers from a script? 裡的作法來進行。

這作法蠻 tricky 的,主要是利用 EDITOR 環境變數把 visudo 預設的編輯器換為 tee -a ,這樣就不會開啟 vi 編輯器,而會改用 tee 來處理。來看看這行指令

echo 'foobar ALL=(ALL:ALL) ALL' | sudo EDITOR='tee -a' visudo
  1. | 的左邊是很單純的 echo,這裡可以放置要放進去的設定
  2. | 的右邊就是 sudo 跟 visudo ,這是用 sudo 執行 visudo 指令,並且把編輯器換為 tee -a

這樣組合以後,就可以把設定放到 /etc/sudoers 裏面去了。

另外一種比較單純的作法就是在 /etc/sudoers.d 目錄下去新增檔案,新增以後,因為 /etc/sudoers 裏面有寫 #includedir /etc/sudoers.d ,所以會引用到 /etc/sudoers.d 目錄下的檔案。

沒有留言: