
Ich verwende Ubuntu 14.04. Wenn ich als Root angemeldet bin, versuche ich, einen Befehl als anderer Benutzer (Postgres) auszuführen. Dies schlägt jedoch fehl.
root@remotebox:/home/rails/myproject# su - postgres 'pg_upgradecluster 9.3 main'
-su: pg_upgradecluster 9.3 main: No such file or directory
Was mache ich falsch?
Antwort1
Sie versuchen, 'pg_upgradecluster 9.3 main'
zur Standard-Shell für den Postgres-Benutzer zu wechseln. Abhängig von der Postgres-Benutzerkonfiguration kann dies bedeuten, dass die 'pg_upgradecluster 9.3 main'
Datei im Postgres-PATH ausgeführt wird. Aus diesem Grund erhalten Sie die Fehlermeldung „Keine solche Datei oder kein solches Verzeichnis“.
Versuchen Sie, das Argument als Befehl zu übergeben (-c):
su - postgres -c 'pg_upgradecluster 9.3 main'
als Shell:
su - postgres -s /path/to/pg_upgradecluster -- 9.3 main
oder um die Shell explizit auszuwählen:
su - postgres -s /bin/bash -- -c 'pg_upgradecluster 9.3 main'