PHP sudo: 需要一个终端来读取密码
PHP sudo: a terminal is required to read the password
我有一个脚本,我想从我的 PHP 代码中调用它。以下是我的脚本文件:
listwifi.sh
sudo iwlist wlp1s0 scan | grep SSID
为此,我还使用 sudo chmod +x listwifi.sh
授予了可执行权限
我在我的 sudoers 文件末尾添加了以下内容(使用 visudo):
apache ALL = NOPASSWD: /var/www/html/mypath/osscripts/listwifi.sh *
www-data ALL = NOPASSWD: /var/www/html/mypath/osscripts/listwifi.sh *
我也试过 :
apache ALL = NOPASSWD: /usr/bin /var/www/html/mypath/osscripts/listwifi.sh *
www-data ALL = NOPASSWD: /usr/bin /var/www/html/mypath/osscripts/listwifi.sh *
我正在使用以下 PHP 代码来调用此文件:
exec(getenv('BASE_DIR') . "/osscripts/listwifi.sh", $output);
var_dump($output);
但我不断收到以下错误:
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
如何让 PHP 以 root 身份执行此文件而无需输入密码?
从脚本中取出 sudo
并将脚本调用为
sudo /var/www/html/mypath/osscripts/listwifi.sh
sudoers
配置是针对通过 sudo
调用的命令,而不是从...
调用的命令
我有一个脚本,我想从我的 PHP 代码中调用它。以下是我的脚本文件:
listwifi.sh
sudo iwlist wlp1s0 scan | grep SSID
为此,我还使用 sudo chmod +x listwifi.sh
我在我的 sudoers 文件末尾添加了以下内容(使用 visudo):
apache ALL = NOPASSWD: /var/www/html/mypath/osscripts/listwifi.sh *
www-data ALL = NOPASSWD: /var/www/html/mypath/osscripts/listwifi.sh *
我也试过 :
apache ALL = NOPASSWD: /usr/bin /var/www/html/mypath/osscripts/listwifi.sh *
www-data ALL = NOPASSWD: /usr/bin /var/www/html/mypath/osscripts/listwifi.sh *
我正在使用以下 PHP 代码来调用此文件:
exec(getenv('BASE_DIR') . "/osscripts/listwifi.sh", $output);
var_dump($output);
但我不断收到以下错误:
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
如何让 PHP 以 root 身份执行此文件而无需输入密码?
从脚本中取出 sudo
并将脚本调用为
sudo /var/www/html/mypath/osscripts/listwifi.sh
sudoers
配置是针对通过 sudo
调用的命令,而不是从...