Bash
在 bash 腳本中更改使用者
我有一個簡單的 bash 腳本,它作為普通使用者執行得很好。當從 postfix 啟動時,它以 nobody:nobody 執行,這會阻止許多命令工作。
腳本是否可以在執行時更改為另一個使用者帳戶,以允許這些其他程序執行?
謝謝
您將需要進行配置
sudo
,以便您可以執行特定命令,nobody
該命令將以另一個使用者身份執行。通常,類似(在您的
sudoers
文件中):nobody ALL=(userTheScriptShouldRunAs) NOPASSWD: /home/userTheScriptShouldRunAs/test.sh
然後,讓你的腳本執行:
sudo -u userTheScriptShouldRunAs /home/userTheScriptShouldRunAs/test.sh
您可以使用setuid位設置程序的權限:
chown usertorunas 文件名
chmod 和+s 文件名
這將使它以擁有該文件的使用者身份執行。
但是,正如@Jay 提醒我的那樣,它不適用於腳本。要以不同的使用者身份執行腳本,您需要按照此處的說明製作一個小程序,該程序可以設置為 setuid,並呼叫您的腳本。