Sudo
在 Ubuntu 上以其他使用者身份執行命令時遇到問題
我正在使用 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'