CGI с Shell-скриптом

CGI с Shell-скриптом

У меня возникли проблемы с запуском примера CGI с помощью Shell Script. Я не могу получить доступ к каталогу, созданному в примере, которому я следую, "/tmp/shell". При доступе к адресу "http://localhost/shell" должен увидеть страницу "Индекс shell", но выдает ошибку 403 с сообщением "У вас нет прав доступа/shell/ на этом сервере".

Я использую Fedora 24, и я думаю, что пользователь Apache называется «Apache», ну, по крайней мере, в файле «passwd» есть пользователь Apache, папка, в которой я хотел запустить файлы CGI, имеет права доступа 777, и я изменил пользователя на «apache» с помощью chown, но все равно выдает ошибку 403.

Мой файл «/etc/httpd/conf/httpd.conf» выглядит так:

$ Tail -n20 /etc/httpd/conf/httpd.conf

# Settings for the study of Shell Script and CGI

Alias ​​/shell "/tmp/shell/"

<Directory "/tmp/shell/">
    Options Indexes FollowSymlinks ExecCGI
    AllowOverride None
    Order allow, deny
    Allow from all
</ Directory>

Мой /tmp/shell:

$ ls -ld /tmp/ /tmp/shell
drwxrwxrwt. 15 root   root   480 Out  1 13:53 /tmp/
drwxrwxr-x.  2 apache apache  40 Out  1 13:52 /tmp/shell

Apache нормально работает наhttp://localhost, Я не понимаю, почему я не могу получить доступ к /tmp/shell. Я схожу с ума!

Кто-нибудь может мне помочь?

решение1

Fedora 24 использует systemd и, вероятно, настраивает частный /tmpтолько для процесса httpd. Вы можете проверить это с помощью

sudo systemctl show -p PrivateTmp httpd

Вы можете переопределить это, создав файл, /etc/systemd/system/httpd.serviceсодержащий

.include /lib/systemd/system/httpd.service
[Service]
PrivateTmp=false

и выполнение sudo systemctl daemon-reloadперед перезапуском службы.

Связанный контент