Возникли проблемы с запуском команды от имени другого пользователя в Ubuntu

Возникли проблемы с запуском команды от имени другого пользователя в Ubuntu

Я использую Ubuntu 14.04. Когда я вошел в систему как root, я пытаюсь запустить команду как aotehr (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. В зависимости от конфигурации пользователя postgres это может означать выполнение 'pg_upgradecluster 9.3 main'файла в PATH postgres, и это причина, по которой вы получаете ошибку "No such file or directory error".

Попробуйте передать аргумент как команду (-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'

Связанный контент