Linux
如何以程式方式在 sudoers 文件中添加secure_path
我正在嘗試為從 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 包時,您不必檢查並可能合併配置文件。