Как я могу запускать сценарии командной оболочки Linux, которым нужна привилегия root с веб-страницы

Я пытаюсь запустить сценарий оболочки Linux, который требует привилегий root через Apache, есть ли способ запускать скрипты, которые нуждаются в привилегиях root, а не устанавливать привилегии suid и sudo для Apache.

Я пытаюсь редактировать такие файлы, как панели управления, например, в Plesk «sw-cp-server» может редактировать корневые файлы.

3 Solutions collect form web for “Как я могу запускать сценарии командной оболочки Linux, которым нужна привилегия root с веб-страницы”

Проблема с этим – независимо от того, как вы разрезаете его, если непривилегированный пользователь может записать файл сценария, вы оставляете дверь открытой, чтобы позволить этому пользователю что-либо делать, поскольку в этом случае он может изменить сценарий. Тем не менее, нет необходимости делать это, поскольку он может владеть root и устанавливать 0700, если хотите.

вместо того, чтобы устанавливать привилегии suid и sudo для Apache

Вам не нужно устанавливать что-либо, и вы можете использовать sudo, чтобы apache мог выполнить только этот скрипт. Если apache работает как пользователь httpd , добавьте в /etc/sudoers :

 httpd ALL = NOPASSWD: /foo/bar/scripts/foobar.sh 

Замените фактический путь для сценария. Затем вызов будет использовать sudo /foo/bar/scripts/foobar.sh . Но это единственное, что пользователю httpd будет разрешено сделать это.

Для получения дополнительной информации см. man 5 sudoers .

Единственный способ запускать скрипты, которые потребуют root priveleges через Apache, – предоставить Apache необходимый набор привилегий для внесения необходимых вам изменений.

Другой вариант (и это грязное обходное решение) заключается в том, чтобы Apache записывал файл и демон запускал на сервере, чтобы проверить те файлы, которые Apache написал, и принять меры на основе того, что было написано в файле Apache.

Если вы не хотите запускать Apache с привилегиями root (и не должны), вы можете написать небольшую программу-оболочку для скрипта, в которой вы даете разрешения SUID ( chmod 4755 ) и имеет root как владельца. Затем эта программа-оболочка может вызвать сценарий, который будет выполняться с правильными разрешениями. Никакие другие сценарии, таким образом, не будут «подняты», но, конечно, вам нужно позаботиться о том, чтобы содержимое скрипта не могло быть изменено в любом случае.

  • Как передать путь файла к функции вместо содержимого файла?
  • как сделать форматирование файла в unix
  • Удаленный ls на нескольких машинах
  • Невозможно назначить вывод вложенных команд переменной в bash
  • Добавить строку после определенной строки в одной строке в текстовом файле
  • Сценарий Bash для редактирования большого количества html-документов
  • Как преобразовать все .wav-файлы в подкаталоги в .aac, используя neroAacEnc?
  • Изменение числового значения в файле с помощью Vim из сценария
  • Машиночитаемое количество обновлений? Альтернатива / usr / lib / update-notifier / apt-check?
  • Как создать сценарий оболочки для обработки команд типа ls -l / somedir
  • Grep / awk для нескольких файлов для одного вывода
  • Linux и Unix - лучшая ОС в мире.