не могу передать пароль su

У меня есть сценарий bash, который требует, чтобы пара команд выполнялась под другим пользователем. Я хотел бы сделать это с помощью su, но я не могу автоматически использовать su без запроса пароля.

Пользователь, запускающий скрипт, будет apache в centos (поэтому это не настоящая учетная запись пользователя, например, вы не можете выполнить su apache и получить приглашение под пользователем apache).

Таким образом, я не думаю, что что-то вроде expect будет работать. Я также не могу подключиться по ssh от apache к другой учетной записи localhost, используя ключи ssh.

Есть ли способ достичь моей цели? Жесткое кодирование паролей приемлемо для меня.


person user788171    schedule 17.07.2011    source источник
comment
вы можете использовать sudo и разрешить apache выполнять некоторые файлы без пароля от имени другого пользователя   -  person knittl    schedule 17.07.2011


Ответы (1)


Это то, для чего был создан sudo — мелкозернистое повышение разрешений. Если вы добавите скрипт как нечто, что apache может запускать с помощью sudo (в файле /etc/sudoers), вы можете предоставить ограниченную эскалацию разрешений.

Однако требовать, чтобы что-либо вызывалось от пользователя apache, очень и очень опасно. Это может быстро превратить ограниченный локальный эксплойт в эксплойт root. Будьте очень осторожны при очистке ввода, понимайте, как оболочки расширяют переменные и т. д.

person Yann Ramin    schedule 17.07.2011