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

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

我使用的是 Ubuntu 14.04。當以 root 身分登入時,我嘗試以另一個(postgres)身分執行命令。然而,它失敗了

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

我究竟做錯了什麼?

答案1

您正在嘗試傳遞'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

或明確選擇 shell:

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

相關內容