Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Поделитесь опытом. Ограничение команд сервисов только для одного пользователя  (Прочитано 625 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kichMan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Буду признателен вам, если вы поделитесь своими решениями, наличие которых возможно в любом случае, так как найдется не мало тех, кто сталкивался с подобной нетривиальной задачей.

Суть в следующем, имеем сервис, например PHP, который может выполнять команды через shell_exec, описанного в скриптах пользователя user:user. При этом, надо выполнить не просто команду, а например, обновление репозитория с соединение через SSH-ключ, настроенного у user:user. (надо дополнить, что команда выполняется при открытии страницы в браузере).

Казалось бы, можно войти www-data под user:user и выполнить pull запрос, но вот незадача, имеется условие, что нельзя хранить пароли в открытом виде, т.е. в скриптах и бинарниках.

Также, не вариант, добавлять пользователя в группу www-data, так как предполагается что другие пользователи тоже в этой группе, и с легкостью могут напортачить "соседям".

Все это и стало причиной вопроса, а как же в shell_exec выполнить pull по SSH-ключу, без входа под пользователем?

На ум пока приходит только удаленное исполнение скриптов, опять же через подключение www-data к user:user по SSH с использованием ключей. Но у данного способа есть существенный минус, так как необходимо хранить приватные ключи у www-data, и забивать known-hosts - со временем это черевато неконтролируемым захламлением.


Поделитесь опытом, как вы решали подобную задачу, заранее благодарен.


* Забыл добавить, что банальное (именно банальное) добавление в Cron - не вариант, так как сервисы могут быть разные и команды тоже


 

Страница сгенерирована за 0.016 секунд. Запросов: 21.