Фон: Я пишу сценарий для компании, которая позволит пользователям создавать учетные записи FTP через веб-интерфейс. В фоновом режиме, скрипт должен запустить кучу команд:Выполнение команд, хотя PHP/Perl-скрипты в качестве привилегированного пользователя в Linux
- Добавить пользователя в систему (useradd)
- Открыть и редактировать различные файлы
- почты пользователя с помощью Sendmail
и еще несколько вещей ...
Я в основном ищу наиболее безопасный способ. Я слышал о методе setuid, методе sudo и, конечно же, запущен httpd как привилегированный пользователь. Будут проверены на достоверность введенных данных, прежде чем будут выполнены какие-либо команды (например, только буквенно-цифровые символы в именах пользователей)
Что такое метод, используемый популярными сценариями (например, webmin), так как это должно быть довольно безопасно?
Единственная проблема с этим: 1) Мне нужны учетные записи, созданные сразу, я не могу ждать хрон ... что приводит к 2) Я не хочу чтобы каждый час работать cron, не повлияет ли это на сервер? – jtd
Вот почему другой вариант заключается в том, чтобы написать демон (фоновый процесс), который следит за очередью и выполняет действия немедленно. До тех пор, пока вы не используете общий хостинг (и похоже, что вы не добавляете пользователей), это, вероятно, возможно. –
Правильно, есть несколько способов пойти на это. Каждый минута cron будет в порядке, если приемлемо подождать до одной минуты. Это не повлияет на работу сервера - большую часть времени он просто видит, что очередь пуста и выходит. Я бы, наверное, просто написал маленького демона, который проверяет очередь каждую секунду или около того. Для ваших целей достаточно одиночного процесса, не-потокового демона. Единственный недостаток - теперь вам нужно убедиться, что ваш демон всегда работает, но это довольно легко разрешимо. – timdev