Sudo

在 Ubuntu 上以其他使用者身份執行命令時遇到問題

  • October 21, 2016

我正在使用 Ubuntu 14.04。當以 root 身份登錄時,我正在嘗試以 anotehr (postgres) 身份執行命令。但是,它失敗了

root@remotebox:/home/rails/myproject# su - postgres 'pg_upgradecluster 9.3 main'
-su: pg_upgradecluster 9.3 main: No such file or directory

我究竟做錯了什麼?

您正在嘗試傳遞'pg_upgradecluster 9.3 main'給 postgres 使用者的預設 shell。根據 postgres 使用者配置,這可能意味著'pg_upgradecluster 9.3 main'在 postgres PATH 中執行文件,這就是您收到“沒有此類文件或目錄錯誤”的原因。

嘗試將參數作為命令 (-c) 傳遞:

su - postgres -c 'pg_upgradecluster 9.3 main'

作為一個外殼:

su - postgres -s /path/to/pg_upgradecluster -- 9.3 main

或明確選擇外殼:

su - postgres -s /bin/bash -- -c 'pg_upgradecluster 9.3 main'

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