Выполнение команды от имени пользователя nologin


43

Я недавно настроил свой сервер так, чтобы мои «виртуальные» пользователи suPHP не могли войти в систему, используя эту статью

Моя проблема в настоящее время является то , что раньше , когда я запустил rakeкоманду для моего Рубин на Rails приложение , запущенное на сервере, я использовал , suчтобы войти в www-dataи выполнить команду оттуда - очевидно , что я не могу сделать это больше из - за NOLOGIN.

Итак, как пользователь root, как я могу выполнять команды от имени другого пользователя, даже если они nologin?


Один из способов - запустить оболочку для этого пользователя (явно указав оболочку): sudo -u www-data bashвыполнить ваши команды и
выйти

@ cyberx86 Ваше решение приносит удовольствие, не могли бы вы представить его мне как ответ?

Ответы:


50

Один из способов - запустить оболочку для этого пользователя (явно указав оболочку):

sudo -u www-data bash 

Это запустит оболочку (bash) от имени указанного пользователя. Затем вы можете выполнить свои команды и выйти из системы (чтобы вернуться в предыдущую оболочку)


39

В качестве root вы можете использовать su -s /bin/sh $user - -sопция переопределяет настроенную оболочку для пользователя.


1
Это всегда кажется ошибкой для меня.

Прекрасно работает для меня, никогда не было проблем. При запуске сценариев с синтаксисом bash требуется / bin / bash, а не / bin / sh
ekerner
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.