Users

在腳本中更改使用者?

  • February 24, 2012

我正在嘗試更改使用者以便在啟動期間執行特定命令。它靜默失敗,顯然使用者更改沒有執行,因為我可以看出該命令沒有執行。

我在下面顯示的 initscript 中做錯了什麼?

respawn
console none

start on startup
stop on shutdown

script
 su -u anotheruser -c "myCommand" >> "myLogfile.log"
end script

我假設您正在執行最新版本的 ubuntu 或基於upstart的發行版。您可以檢查/var/log/daemon.log錯誤。

該標准su採用語法su [options] [username]。結帳man 1 su。您可能想嘗試:

su -c "myCommand" anotheruser >> "myLogfile.log"

此外,還會發生一些事情(大部分是不可取的)

  1. myLogfile.log將歸root.
  2. myLogfile.log``/如果您不使用絕對路徑/tmp/myLogfile.log(因為 upstart 執行時 pwd 設置為),則會在(根目錄)上創建/

如果您希望文件歸anotheruser您所有,則可以將命令切換到。

su -c "myCommand >> /tmp/myLogfile.log" anotheruser

如果您有早期執行的剩餘部分,或者沒有更改為類似的東西(通常,普通使用者無法在 root dir 上創建文件),這myLogfile.log可能rootmyLogfile.log導致/tmp/myLogfile.log問題/

引用自:https://unix.stackexchange.com/questions/32558