Користувачеві 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