Как я могу запускать сценарии командной оболочки 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 как владельца. Затем эта программа-оболочка может вызвать сценарий, который будет выполняться с правильными разрешениями. Никакие другие сценарии, таким образом, не будут «подняты», но, конечно, вам нужно позаботиться о том, чтобы содержимое скрипта не могло быть изменено в любом случае.

  • Сценарий оболочки для проверки состояния точки монтирования на сервере linux
  • Как перемещать или копировать список файлов, на которые ссылается файл csv, в новую папку
  • Сценарий Bash с ssh, не возвращающим значение переменных
  • команда find с несколькими шаблонами, не возвращающими никакого вывода
  • Перепишите аргументы перед передачей их команде
  • Скрипт Perl работает отлично в интерактивной оболочке, но не как задание cron
  • Помогите понять команду cut в скрипте
  • Сценарий для перемещения одного типа файлов и создания подпапки, если он существует?
  • Как преобразовать строку в массив в сценарий оболочки
  • удалить новые строки
  • Как я могу отображать 3 строки текста за один раз на 1 строку?
  • Linux и Unix - лучшая ОС в мире.