Bash

在 bash 腳本中更改使用者

  • February 16, 2013

我有一個簡單的 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,並呼叫您的腳本。

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