Pegas12345
@Pegas12345

Как сделать, чтобы скрипт выполнился от имени веб сервера?

Всем привет.
Помогите пожалуйста с проблемой.
Всё нормально работало на UBUNTU 22, после того как стало UBUNTU 24 появилась проблема.
А проблема вот чём:

Есть скрипт на php "open.php", который должен выполнить команду из bash "open.sh".
Вызывл, по-разному: system("open.sh"), exec("open.sh"), shell_exec("open.sh") и т.д.
Сама веб страница работает от имени пользователя ISP на виртуальном хосте сервера APACHE

В файле "open.sh" пока для теста сделал такую строку:
echo `whoami` - `date` > /dev/pts/0

То есть команда, для которой нужен root, чтобы получилось сделать вывод на /dev/pts/0.

В sudoers есть это:
isp ALL=(root) NOPASSWD: /home/isp/www/html/opendoor/open.sh, /home/isp/www/html/opendoor/open.php
apache ALL=(root) NOPASSWD: /home/isp/www/html/opendoor/open.sh, /home/isp/www/html/opendoor/open.php


в настройка apache есть это:
<IfModule mpm_itk_module>
	AssignUserId isp isp
</IfModule>


Команда system("whoami") в php файле выводит всё верно "isp"

Но при открытии страницы open.php выдаётся ошибка

"Error executing command: /home/isp/www/html/opendoor/open.sh: line 3: /dev/pts/0: Permission denied

Но если из командой строки захожу в аккаунт пользователя

su isp
и от имени этого пользователя выполняю sudo /home/isp/www/html/opendoor/open.sh
всё работает. Кажется всё перепробовал, не получается и всё, хотя до этого всё работало.

ls -la 
-rw-r--r-- 1 isp isp  2293 Jul 19 22:04 open.php
-rwxr-xr-x 1 isp isp    82 Jul 19 22:03 open.sh


Что делать уже и не знаю... Надеюсь на вашу поддрежку.
Спасибо.
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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