Selinuxとcgi-bin - >権限が拒否されました。

Selinuxとcgi-bin - >権限が拒否されました。

RHEL 7を使用して、標準のcgi-binの場所/var/www/cgi-bin/test.plでhello-world Perlスクリプトを実行してみてください。 selinux が必須に設定されている場合のみ、httpd エラーログに権限が拒否されました。

AH01215: (13)Permission denied: exec of '/var/www/cgi-bin/test.pl' failed  
End of script output before headers: test.pl

selinuxを許可に設定すると、スクリプトが正しく実行され、httpdエラーログに何も投稿されません。

監査ログで私はチャン・グァンソルを聞きます。

type=PROCTITLE msg=audit(27482): proctitle=2F7573722F62696E2F7065726C002F7661722F7777772F6367692D62696E2F746573742E706C
type=PATH msg=audit(27482): item=2 name="/lib64/ld-linux-x86-64.so.2" inode=134467951 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:ld_so_t:s0 objtype=NORMAL
type=PATH msg=audit(27482): item=1 name="/usr/bin/perl" inode=67148821 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:bin_t:s0 objtype=NORMAL
type=PATH msg=audit(27482): item=0 name="/var/www/cgi-bin/test.pl" inode=269726961 dev=fd:07 mode=0100775 ouid=0 ogid=1007 rdev=00:00 obj=system_u:object_r:httpd_sys_script_exec_t:s0 objtype=NORMAL
type=CWD msg=audit(27482):  cwd="/var/www/cgi-bin"
type=EXECVE msg=audit(27482): argc=2 a0="/usr/bin/perl" a1="/var/www/cgi-bin/test.pl"
type=SYSCALL msg=audit(27482): arch=c000003e syscall=59 success=yes exit=0 a0=561ae60b3cd0 a1=561ae60ad370 a2=561ae60ad388 a3=7ffe850d64a0 items=3 ppid=23749 pid=24488 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="test.pl" exe="/usr/bin/perl" subj=system_u:system_r:httpd_t:s0 key=(null)
type=SELINUX_ERR msg=audit(27482): op=security_bounded_transition seresult=denied oldcontext=system_u:system_r:httpd_t:s0 newcontext=system_u:system_r:httpd_sys_script_t:s0

最後の行が面白いと思います。"SELINUX_ERR op=security_bounded_transition seresult=拒否 oldcontext=... newcontext=..."しかし、関連する内容があまり見つかりませんでした。

最後に、ファイルのコンテキストと権限が正しく設定されました。

drwxrwxr-x. root   webdev system_u:object_r:httpd_sys_script_exec_t:s0 /var/www/cgi-bin
-rwxrwxr-x. root webdev system_u:object_r:httpd_sys_script_exec_t:s0 /var/www/cgi-bin/test.pl

http.confのすべての内容が正しく設定されました。

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI
   Require all granted 
</Directory>
AddHandler cgi-script .pl

何が起こっているのかを調べるまで、selinuxを終了する必要があります。

ベストアンサー1

おすすめ記事