쉘 스크립트를 사용하여 CGI 예제를 실행하는 데 문제가 있으며 예제에서 "/tmp/shell" 다음에 생성된 디렉토리에 액세스할 수 없습니다. "라는 주소에 접속하여http://localhost/셸""shel의 색인" 페이지가 표시되어야 하지만 "이 서버의 /shell/에 액세스할 수 있는 권한이 없습니다."라는 메시지와 함께 403 오류가 표시됩니다. "
저는 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
/tmp
Fedora 24는 systemd를 사용하며 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
서비스를 다시 시작하기 전에 이 작업을 수행하세요 .