Как назвать сценарий оболочки от php, который требует SUDO?

У меня есть файл, который является сценарием удара, который требует, чтобы SUDO работал.

Я могу выполнить его из командной строки с помощью SUDO, но мне предложат вставить пароль SUDO.

Я хочу запустить этот скрипт от php через shell_exec но я, если я называю SUDO, не как командная строка, где мне можно предложить пароль. Существует ли способ передать пароль для sudo с вызовом sudo?

Как я могу сделать это?

45
задан JD Isaacks 2 July 2010 в 13:35
поделиться

3 ответа

Отредактируйте файл sudoers (с помощью visudo ) и добавьте правило, позволяющее пользователю веб-сервера запускать команду без пароля. Например:

www-data ALL=NOPASSWD: /path/to/script
45
ответ дан 26 November 2019 в 21:25
поделиться

Существуют различные решения для Эта проблема.

  • Прежде всего, подумайте об изменении разрешений скрипта, если причина, по которой вы хотите использовать sudo, - это просто проблема с разрешениями (см. Комментарий, который я добавил к вопросу выше).

  • Другой подход заключается в использовании бита setuid . [Edit: похоже, что setuid плохо работает со скриптами. Для объяснения см. эту ссылку .]

  • Третий, но очень небезопасный метод - это чтение пароля из файла паролей. Предупреждение: Это очень небезопасно, если есть другая возможность, не делайте этого. И если вы это сделаете, попробуйте спрятать файл паролей где-нибудь в иерархии папок.

     
    
  • И четвертая возможность - использовать тег NOPASSWD в файле sudoers. Вы должны ограничить эту возможность конкретными командами, которые вам нужны.

8
ответ дан 26 November 2019 в 21:25
поделиться

Вы можете добавить что-то вроде этого в свой файл sudoers :

username ALL=NOPASSWD: /path/to/script

Это позволит конкретному пользователю вызывать sudo для этого конкретного сценария без запрашивается пароль.

5
ответ дан 26 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

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