Как я могу выполнять команды от имени другого пользователя со своим .bash_profile вместо текущего пользователя? - PullRequest
4 голосов
/ 22 февраля 2012

Я хочу запустить команду от имени пользователя без полномочий root в скрипте запуска (rc.local). Команда, которую я хочу выполнить, на самом деле является псевдонимом в .bash_profile пользователя без полномочий root. Я пытался использовать

su - myuser -c aliased_cmd

но это не работает. Если я просто наберу

su - myuser
# wait for login...
aliased_cmd

это работает нормально, но, очевидно, это не подходит для реального сценария. Конечно, я мог бы скопировать псевдонимы и функции, которые я хотел бы использовать, в настоящий файл rc.local, но это кажется немного глупым ... возможно, есть опция, о которой я не знаю, или способ использовать sudo для это?

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

после получения профиля, включите следующее

shopt -s expand_aliases
0 голосов
/ 22 февраля 2012

Цитирование man su:

Когда - используется, он должен быть указан как последний параметр su.

Не указано, что произойдет, если это не последний вариант. Кроме того, в кратком описании имя пользователя - после всех параметров.

Вы пробовали su -c aliased_cmd - myuser или su -l -c aliased_cmd myuser?

...