Добрый вечер. Пишу WEB-интерфейс на php, которому время от времени нужно выполнять небольшой ряд команд от суперпользователя.
В убунте, это делалось так:
Открывался файл /etc/sudoers
Писалось туда что-то типа www-data ALL = NOPASSWD: /usr/sbin/iptables
Потом внутри php-скрипта писалось @ exec(“sudo /usr/sbin/iptables -A POSTROUTIND e.t.c…”)@
Поскольку юзеру www-data было разрешено запускать эту команду в режиме суперюзера, то все работало.
Как сделать аналогичное решение в CDS? Уже выяснил, что апач работает из под одноименного пользователя apache. Но ведь в генте sudo нет? Как это решается здесь? Вводить apache в группу рута совсем не хочется. Хочется разрешить только определенный диапазон команд: ни больше ни меньше.
В gentoo принято вместо изменения конфига устанавливаемого из пакета, прописывать в другой, если это предусмотрено пакетом (при обновлении пакета не придется заморачиваться с измененными файлами).
Что касается sudo - есть директория /etc/sudoers.d/ в которой вы можете создать свой конфиг, и прописать в него нужные права и команды.
PS
Я не знаток sudo, но насколько я знаю в нем нельзя контролировать параметры передаваемые исполняемой команде.
Если это так, то наверно стоит создать свои скрипты уточняющие “область действия” исполняемых команд, вроде как: # cat /usr/local/bin/cl-usermod-samba
А без eix app-admin/sudo как-то штатными средствами можно такое реализовать?
eix - утилита для поиска по пакетам
Извините, предположил что вы знакомы с командами поиска/установки/удаления программ.
Предлагаю вам почитать документацию о:
и о утилите установки/удаления пакетов emerge в частности
а также об eix - утилите облегчающей поиск по пакетам
После этого вам будет довольно просто установить штатными средствами пакет app-admin/sudo PS
сделать это можно командой emerge -avt app-admin/sudo
но я бы вам очень порекомендовал почитать приведенные выше ссылки на документацию.
Немного знаком, Apache+PHP удалось установить, как минимум.
Этот вопрос связан с установкой программы, которую я пишу на cds. Чтобы меньше сторонних программ использовать. Если нет вариантов со штатными средствами, то просто включу этот пакет в документацию по установке.