Как открыть терминал с правами root из веб-приложения на основе php

Я знаю, что это старый пост, но более быстрый способ удаления областей - это команда:

apt-get remove unity-scope-* unity-scope-home+

Удаляет все те, которые не требуются для Ubuntu, и оставляет одно то есть (проверено с 16.04).

-1
задан 30 May 2017 в 12:39

4 ответа

Альтернативой подходу Rinzwind является следующее:

Напишите сценарий, который обертывает привилегированную команду, например. g., #!/bin/sh set -eu input="$1" output="$2" exec /path/to/data-analysis-program [OPTIONS...] "$input" "$output" Сохраните его как, скажем, /other/path/to-data-analysis-wrapper.sh и сделайте его исполняемым: chmod +x /other/path/to-data-analysis-wrapper.sh Проверьте, что сценарий оболочки выполняет то, что вы хотите: sudo /other/path/to-data-analysis-wrapper.sh <INPUT-FILE> <OUTPUT-FILE> Передайте право собственности на файл пользователю, который делает его неприемлемым пользователю, владеющему процессом веб-сервера, e. г. root: sudo chown root /other/path/to-data-analysis-wrapper.sh Настроить sudoers, чтобы разрешить выполнение скрипта пользователем, которому принадлежит процесс веб-сервера, с повышенными привилегиями. См. Как выполнять определенные команды sudo без пароля? как это сделать в целом и использовать следующее правило (или настроить его по своему усмотрению): www-data ALL = (root) NOPASSWD: /other/path/to-data-analysis-wrapper.sh * Теперь вы можете выполнить sudo /other/path/to-data-analysis-wrapper.sh <INPUT-FILE> <OUTPUT-FILE> из сценариев CGI, работающих от имени веб-сервера.

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

0
ответ дан 18 July 2018 в 12:35

Нет, это неправильный подход. Я бы примерно сделал это следующим образом:

Храните данные с веб-сайта на сервере в базе данных или в виде текстового файла. Используйте сценарий (службу или наблюдатель каталога в /etc/crontab) на сервере, где вы заполняете файл в базе данных или создаете текстовый файл с данными из этого текстового файла, чтобы веб-страница забирала эти новые данные после того, как вы манипулировали данные для получения желаемых результатов.

Подход базы данных лучше, но немного больше. Хорошо спроектированная база данных заставляет вас проверять данные и упрощает манипуляции с данными. Вы можете использовать «процедуру» в MySQL для управления данными. Сбрасывание текстового файла проще, но проверка и манипулирование текстовым файлом может быть сложной задачей.

2
ответ дан 18 July 2018 в 12:35

Альтернативой подходу Rinzwind является следующее:

Напишите сценарий, который обертывает привилегированную команду, например. g., #!/bin/sh set -eu input="$1" output="$2" exec /path/to/data-analysis-program [OPTIONS...] "$input" "$output" Сохраните его как, скажем, /other/path/to-data-analysis-wrapper.sh и сделайте его исполняемым: chmod +x /other/path/to-data-analysis-wrapper.sh Проверьте, что сценарий оболочки выполняет то, что вы хотите: sudo /other/path/to-data-analysis-wrapper.sh <INPUT-FILE> <OUTPUT-FILE> Передайте право собственности на файл пользователю, который делает его неприемлемым пользователю, владеющему процессом веб-сервера, e. г. root: sudo chown root /other/path/to-data-analysis-wrapper.sh Настроить sudoers, чтобы разрешить выполнение скрипта пользователем, которому принадлежит процесс веб-сервера, с повышенными привилегиями. См. Как выполнять определенные команды sudo без пароля? как это сделать в целом и использовать следующее правило (или настроить его по своему усмотрению): www-data ALL = (root) NOPASSWD: /other/path/to-data-analysis-wrapper.sh * Теперь вы можете выполнить sudo /other/path/to-data-analysis-wrapper.sh <INPUT-FILE> <OUTPUT-FILE> из сценариев CGI, работающих от имени веб-сервера.

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

0
ответ дан 24 July 2018 в 19:59

Нет, это неправильный подход. Я бы примерно сделал это следующим образом:

Храните данные с веб-сайта на сервере в базе данных или в виде текстового файла. Используйте сценарий (службу или наблюдатель каталога в /etc/crontab) на сервере, где вы заполняете файл в базе данных или создаете текстовый файл с данными из этого текстового файла, чтобы веб-страница забирала эти новые данные после того, как вы манипулировали данные для получения желаемых результатов.

Подход базы данных лучше, но немного больше. Хорошо спроектированная база данных заставляет вас проверять данные и упрощает манипуляции с данными. Вы можете использовать «процедуру» в MySQL для управления данными. Сбрасывание текстового файла проще, но проверка и манипулирование текстовым файлом может быть сложной задачей.

2
ответ дан 24 July 2018 в 19:59

Другие вопросы по тегам:

Похожие вопросы: