Estou tendo problemas para executar um exemplo CGI com Shell Script, não estou conseguindo acessar o diretório criado no exemplo que estou seguindo "/tmp/shell". Acessando o endereço "http://localhost/shell"deve ver uma página "Índice de shel", mas dá erro 403 com a mensagem "Você não tem permissão para acessar/shell/neste servidor."
Estou usando o Fedora 24, e acho que o usuário apache se chama 'Apache', bom, pelo menos existe um usuário apache no arquivo "passwd", a pasta onde eu queria rodar os arquivos CGI está com permissão 777 e foi alterada o usuário faz "apache" com chown, mas ainda dá erro 403.
Meu arquivo "/etc/httpd/conf/httpd.conf" se parece com isto:
$ 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>
Meu /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
O Apache roda normalmente emhttp://localhost, não entendo por que não consigo acessar o /tmp/shell. Estou ficando louco aqui!
Alguém pode me ajudar?
Responder1
O Fedora 24 usa o systemd e provavelmente está configurando um private /tmp
apenas para o processo httpd. Você pode verificar isso com
sudo systemctl show -p PrivateTmp httpd
Você pode substituir isso criando um arquivo /etc/systemd/system/httpd.service
contendo
.include /lib/systemd/system/httpd.service
[Service]
PrivateTmp=false
e fazendo sudo systemctl daemon-reload
antes de reiniciar o serviço.