Böyle bir sorun kullandığınız işletim sistemine ve nasıl yapılandırıldığına bağlı olabilir. Bazı linux dağıtımları (ağırlıklı olarak CentOS veya Fedora gibi RHEL tabanlı olanlar) SELinux varsayılan olarak etkinleştirilmiştir. Bu, aşağıdaki komutlarla kontrol edilebilir ve geçici olarak değiştirilebilir:
root@ls:~# /usr/sbin/getenforce
Enforcing
root@ls:~# /usr/sbin/setenforce Permissive
root@ls:~# /usr/sbin/getenforce
Permissive
Geçerli yapılandırma hakkında aşağıdakilerle daha eksiksiz bir görünüm elde edebilirsiniz:
root@ls:~# /usr/sbin/sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
Bu değişiklik, /etc/selinux/config
dosyayı düzenleyerek ve SELINUX
değişkeni permissive
veya olarak ayarlayarak kalıcı yapılabilir disabled
.
Ancak, bu tür bir sorunu çözmenin doğru yolu , eğer gerçekten bu durumdaysanız, /var/log/audit/audit.log
günlük dosyasını kontrol etmektir . SELinux kuralları ile ilgili tüm olayları içerecektir. O zaman muhtemelen betiğinize doğru bağlamı vermelisiniz, yani apache / php kullanıcısı tarafından çalıştırılma yetkisine sahip olmalısınız. SELinux güvenlik bağlamının kontrol edilmesi ls -Z
:
root@ls:~# ls -alZ /var/www/cgi-bin/
drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t .
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t ..
Bu, her dosyanın / dizinin Kullanıcı, Rol ve Türünü listeler. Burada httpd_sys_script_exec_t
tür cgi dizinindeki dosyalara httpd tarafından yürütülmesine izin verir. Kabuk betiğiniz muhtemelen aynı türde olmalıdır.
audit.log
Satırları audit2allow
komuta da besleyebilirsiniz . SELinux'u mutlu etmek için gereken değişiklikleri size verecektir. Ancak genellikle önerilen değişikliklerin sizin durumunuzda yapmanız gerekmeyen SELinux politikasının kendisinde yapılması gerekir (yine de, bu çıktı neler olup bittiğine dair bir ipucu verebilir).
Aşağıdaki sayfada benzer bir sorun ve sorunu çözmenin farklı yolları açıklanmaktadır: http://sheltren.com/stop-disabling-selinux
x
dosya üzerinde yürütme izinleri ( ) ayarladınız mı? Senaryo tercümanını bir shebang satırında mı belirtdiniz?