Користувачеві Apache www-dataпотрібно надати привілеї для виконання певних програм за допомогою sudo.
- Виконайте команду
sudo visudo. Насправді ми хочемо відредагувати файл у. etc/sudoersДля цього, використовуючи sudo visudoв терміналі, він дублює (temp) sudoersфайл для редагування.
- В кінці файлу додайте наступне: наприклад, якщо ми хочемо використовувати команду для
restartпаління та phpкоманду для іншої дії у вашому запитанні,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(Це припускаючи, що ви хочете запускати restartта phpкоманди, використовуючи права суперкористувача (root). І ви використовуєте phpкоманду в usr/bin/шляху)
Однак якщо ви хочете запустити кожну програму, використовуючи привілеї суперкористувача, то додайте наступне замість вищезазначеного. Можливо, ви не хочете робити це, не для ALLкоманд, дуже небезпечно.
www-data ALL=NOPASSWD: ALL
3. Після редагування файлу sudoers ( visudoми редагуємо тимчасовий файл, sudoersщоб зберегти та вийти з тимчасового файлу (visudo), щоб записати у sudoersфайл. ( wq!)
4. Це все, тепер використовуйте exec()або shell_execтаким чином всередині вашого xxx.phpсценарію. не забудьте використовувати до використання sudoкоманди в скрипті php.
колишній: -
exec ("sudo /etc/init.d/smokeping restart 2>&1");
або
shell_exec("sudo php -v");
Тож у своїй проблемі додайте команди, які ви хочете використати, до того, step no (2.)як я додаю, і змініть ваш php-скрипт як потрібний.
тут така ж проблема, як і ваша /programming//a/22953339/1862107