Я строю панель управления в PHP.
Этот CP будет управлять пользователями Linux, их сеансами экрана и файлами.
Я хочу перечислить все подходы и выбрать наиболее безопасный способ, который будет удобен и для пользователя.
/ и т.д. / sudoers
wwwuser ALL = NOPASSWD: ALL
Это позволяет выполнять любую команду через пользователя сервера www.
Это кошмар безопасности.
/ и т.д. / sudoers
wwwuser ALL = NOPASSWD: /path/to/scripts/scripts/
Этот метод использует небольшие скрипты bash с несколькими строками. К сожалению, эти сценарии должны принимать аргументы, увеличивающие поверхность атаки.
Например, этот скрипт создает нового пользователя
#/bin/bash
useradd $1 -s /bin/bash
Я не могу перечислить все разрешенные имена пользователей, поэтому я должен использовать аргументы.
В этом методе все команды, которым нужны права root, отправляются в очередь.
Очередной демон запускается от имени пользователя root и может создавать пользователей и т. Д.
Задача ещё не решена.
Других решений пока нет …