undermuz
@undermuz
Full-Stack Developer

Как вызвать внешний скрипт на PHP с параметрами?

sudo -u user1 php base.php drop
Как это можно вызвать в PHP скрипте?
  • Вопрос задан
  • 2901 просмотр
Решения вопроса 1
Можно только если скрипт запущен от user1 или root
В таком случае system('php base.php drop'); (для root команда остается без изменений)
Если вы имеете ввиду что вроде - запускаем скрипт, он просит ввести судовский пароль и выполняем команду, то так сделать нельзя
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
avalak
@avalak
В принципе @DOC_tr прав, но:
1. Запускать php от root не надо. Вообще не надо.

Если вы имеете ввиду что вроде - запускаем скрипт, он просит ввести судовский пароль и выполняем команду, то так сделать нельзя

2. Так сделать можно. Ключи -A, --askpass
system('SUDO_ASKPASS=/path/to/askpass/askpass sudo -A whoami');

#!/usr/bin/env bash
#/path/to/askpass/askpass
echo "Pa$$word"

про askpass
-A, --askpass
Normally, if sudo requires a password, it will read it from the user's terminal. If the -A (askpass) option is specified, a (possibly graphical) helper program is executed to
read the user's password and output the password to the standard output. If the SUDO_ASKPASS environment variable is set, it specifies the path to the helper program. Other‐
wise, if sudo.conf(5) contains a line specifying the askpass program, that value will be used. For example:
# Path to askpass helper program
Path askpass /usr/X11R6/bin/ssh-askpass

If no askpass program is available, sudo will exit with an error.



3. Можно разрешить запускать скрипт без пароля (NOPASSWD).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы