http.server --cgi не исполняется файл

Всем здравия!

Использую сервер Python - http.server на платформе Orange Pi 3 LTS, Ubuntu 22.04.3 LTS. Получаю доступ к апельсине из консоли Windows через ssh. Запускаю сервер командой:

python3 -m http.server --cgi

Сервер запускается. Далее из браузера компьютера пытаюсь выполнить;

http://<ip addres Opange Pi>:8000/cgi-bin/hello.sh

При этом сервер в консоли пишет, что доступ к файлу запрещён:

----------------------------------------
Exception occurred during processing of request from ('<ip моего компа>', <port>)
Traceback (most recent call last):
  File "/usr/lib/python3.10/http/server.py", line 1189, in run_cgi
    os.execve(scriptfile, args, env)
PermissionError: [Errno 13] Permission denied: '/root/server/cgi-bin/hello.sh'
----------------------------------------
<ip моего компа> - - [16/Feb/2024 12:55:49] CGI script exit code 127

При этом разрешение на выполнение скрипта hello.sh задано командой chmod +x hello.sh и проверено, что скрипт исполняется.

Если запускаю сервер в отдельном потоке и локально пытаюсь сделать к нему запрос:

curl -v -X POST http://0.0.0.0:8000/cgi-bin/hello.sh

то происходит то же самое - сервер отвечает, что доступ к файлу запрещён. Работаю из под рута. Пробовал запустить сервер на Windows и исполнить скрипт - там всё прекрасно работает.

В чём причина отсутствия доступа к файлу hello.sh в Linux, и как её побороть?


Ответы (0 шт):