Linux

如何以程式方式在 sudoers 文件中添加secure_path

  • February 10, 2021

我正在嘗試為從 github 建構節點和 npm 的 EC2 實例建構使用者數據腳本,然後啟動服務。為了潤滑這些輪子,我需要添加:

:/usr/local/bin

到 /etc/sudoers 中開始的行的末尾:

Defaults        secure_path="

https://superuser.com/questions/927512/how-to-set-path-for-sudo-commands談論使用 visudo 來實現這一點,但我想在 EC2 使用者數據中以程式方式進行。

https://stackoverflow.com/questions/16282789/adding-sudo-permissions-to-sudoers-for-user-via-shell-script談論編輯 sudoers 文件,但對於我正在嘗試的東西來說,這似乎太過分了實現。

我認為grep這條線並替換它很容易,但我很難過。不僅僅是因為那個煩人的結束引號!

如果您可以忍受替換secure_path值而不是附加它,則可以使用更簡單的解決方案。通常 sudo 有一個配置目錄,就像/etc/sudoers.d您可以在其中放置其他配置文件一樣。

只需在此處創建一個包含完整secure_path值的文件:

Defaults secure_path="<default value>:/usr/local/bin"

這會覆蓋主配置中的值。如果所有機器的路徑值都相同,則可以使用腳本或包輕鬆部署。

這還有一個額外的好處,那就是在將來更新 sudo 包時,您不必檢查並可能合併配置文件。

引用自:https://serverfault.com/questions/817441