LINUX.ORG.RU

web-лицо для нескольких сервисов

 , , ,


1

1

Хотелось бы для нескольких сервисов (pure-ftpd, puma, etc) сделать простой бэкенд на вебе (на чем не важно, хоть на рельсах).

Как правильно делать, пускать это поделие от рута - нереально опасно. Есть ли какая-то мулька для авторизации в таком случае?

★★★★

Ответ на: комментарий от alozovskoy

В системе, например что бы перезапустить pure-ftpd/nginx нужны права root. Но запускать веь-морду от рута это не комильфо.

invokercd ★★★★
() автор топика
Ответ на: комментарий от invokercd

Ну можно еще скрипт написать, запустить его от рута, подавать ему команды а он будет ребутить нужное приложение

alozovskoy ★★★★★
()
Ответ на: комментарий от sin_a

Просто меня пугает когда что то вроде ispmanager работает от рута. Гораздо лучше если есть что то вроде api к которому можно обратиться и передать авторизационные данные и команду.

invokercd ★★★★
() автор топика
Ответ на: комментарий от invokercd

Никто не будет работать от рута. Ты просто разрешишь апачу выполнять два (или больше, по количеству сервисов) определённых скрипта с повышенными привилегиями. Не больше.

sin_a ★★★★★
()
Ответ на: комментарий от invokercd

На python через fifo:

# mkfifo /tmp/script.fifo
#!/usr/bin/env python
import subprocess

f = open("/tmp/script.fifo")

while True:
    command = f.read().rstrip()
    if not command:
        continue
    subprocess.call(command)

Ну это самый простой случай.

alozovskoy ★★★★★
()

Так для апача и nginx в стстеме создают свои пользователи типа www-data, от их лица и запускается сервис апача, даже если запускает root или юзер через sudo.

sudo service apache2 start

И в системе апач привязан к wwwdata, и запущен от него.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Эти пользователи типа www-data создаются автоматически, после установки apache2 пакета.

menangen ★★★★★
()
Ответ на: комментарий от alozovskoy

Суть понятна, главное ограничить что можно. Спасибо.

invokercd ★★★★
() автор топика
Ответ на: комментарий от menangen

Это непривилегированный юзер для дочерних процессов, мастер-процесс работает от рута (и это нормально). Я имел ввиду что нельзя допускать работы веб-морд от рута.

invokercd ★★★★
() автор топика
Ответ на: комментарий от alozovskoy

только замечу что тут надо быть очень аккуратным с правами иначе это будет не дыра а дырища.

ещё замечу что через судо потенциально менее опасно потому что код выше выполнит любую команду, что в случае какой-нибудь глупой ошибке в web-интерфейсе приведёт к полному фейлу. а через судо можно выполнять только те команды которые определены, что закрывает многие вещи потенциально возможные с кодом выше и ошибкой в веб морде.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от invokercd

Раньше только от рута и запускали апач на 80 порту :-) Конечно, это не круто, но если ваш сервер не для продакшена - то можно оставить апач под рутом, но application (php-fpm) нужно запускать на другом порту уже не под рутом и проксировать через fast-cgi apache+phpfpm.

menangen ★★★★★
()
Ответ на: комментарий от AndreyKl

Ну это просто как пример реализации без sudo. Я бы сделал словарь например { 'stop1' : 'service webserver1 stop', 'start1' : 'service webserver1 start', 'stop2' : 'service webserver2 stop', 'start2' : 'service webserver2 start' } и так далее. То есть ограничил бы выбор действий а сами команды вообще были бы «захардкожены».

alozovskoy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.