Probleme beim Ausführen eines Befehls als anderer Benutzer unter Ubuntu

Probleme beim Ausführen eines Befehls als anderer Benutzer unter Ubuntu

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'

verwandte Informationen