2009-10-21 12 views
15

yalanladı. Birçok öğreticiyi okudum ve farklı forumlarda konuları izledim ancak iş yapamıyorum. Bir Fedora 10 makinesinde bir appache web sunucusu kullanıyorum. Hep(13) İzin reddedildi: /cgi-bin/test.cgi erişim ilk kez ancak başarılı olamadı CGI komut dosyaları dışarı çalışıyorum

[Wed Oct 21 20:47:36 2009] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0 
[Wed Oct 21 20:47:36 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) 
[Wed Oct 21 20:47:36 2009] [notice] Digest: generating secret for digest authentication ... 
[Wed Oct 21 20:47:36 2009] [notice] Digest: done 
[Wed Oct 21 20:47:36 2009] [notice] Apache/2.2.11 (Unix) DAV/2 PHP/5.2.9 mod_ssl/2.2.11 OpenSSL/0.9.8g configured -- resuming normal operations 

sorun var yardıma ihtiyacım var. Ortamım böyle görünüyor. Çizgiyi eklemiş

[Wed Oct 21 21:00:27 2009] [error] [client 192.168.50.69] (13)Permission denied: access to /cgi-bin/test.cgi denied 

: Ben web sayfası sunucusu "http://192.168.50.29/cgi-bin/test.cgi" erişmeye çalıştığınızda

uname -a 
Linux localhost.localdomain 2.6.27.5-117.fc10.i686 #1 SMP Tue Nov 18 12:19:59 EST 2008 i686 i686 i386 GNU/Linux 

ls -l /var/www/cgi-bin/ 
total 36 
-rwxrwxrwx 1 root root 106 2009-10-21 18:29 index.html 
-rwxr-xr-x 1 root root 11089 2009-02-24 20:11 squidGuard.cgi 
-rwxr-xr-x 1 root root 5720 2009-02-24 20:11 squidGuard-simple.cgi 
-rwxr-xr-x 1 root root 5945 2009-02-24 20:11 squidGuard-simple-de.cgi 
-rwxrwxrwx 1 root root 110 2009-10-21 17:38 test.cgi 

apachectl -v 
Server version: Apache/2.2.11 (Unix) 
Server built: Mar 6 2009 09:12:25 

perl -version 
This is perl, v5.10.0 built for i386-linux-thread-multi 
Copyright 1987-2007, Larry Wall 

Benim komut

cat test.cgi 
#!/usr/bin/perl 
print "Content-Type: text/html\n\n"; 
print "Hello, world!\n"; 

hata mesajı gen şuna benzer:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 

Sadece o iş yapamaz

/etc/httpd/conf/httpd.conf için. Bana yardım eden var mı?

+0

hata mesajı gen ben web sayfası sunucusu "http://192.168.50.29/test erişmeye çalıştığınızda.cgi "şöyle görünür: [Çar Eki 21 22:31:32 2009] [error] [client 192.168.50.69] (13) İzin reddedildi: '/var/www/html/test.cgi' dosyasının çalıştırılması başarısız oldu [Çar Oct 21 22:31:32 2009] [error] [client 192.168.50.69] Script başlığının erken sonu: test.cgi –

+1

Neden, neden, neden root bu dosyalara sahip? –

+0

Hangi kullanıcı/gruba ait olduğunu öğrenin apache sunucu işleminin sahibi ve cgi komut dosyalarının sahibi olduğundan ve yürütme iznine sahip olduğundan emin olun. – heferav

cevap

11

test.cgi için os izinlerini kontrol edin ve kullanıcı veya grup bunu okuma erişimine sahip senin apache çalıştırmak için kullandığınızdan emin olun.

DÜZENLEME - Sorun, izinlerle değil, okuma izinleriyle değil, SELinux kullanıyorken dosya bağlamınız hakkında endişelenmeniz gerekir. Bu thread'u fedora forumlarında kontrol edin, sorununuzu çözmek için birkaç seçenek açıklıyor.

+0

Soruya göre test.cgi'nin 777 izinleri vardır - yani okuma, yazma, kullanıcı, grup ve diğerleri için yürütme - tüm kullanıcılar her şeyi yapabilir –

+0

Doğru, biçimlendirilmemiş kodla ilk okumamda bunu özledim – pedromarce

5

. ILK KONTROLÜ HTTPD.CONF FILE.Örnekleme dizini httpd.conf dosyasında aşağıdaki gibi ayarlayın. Burada
sen benim Debian hakkına httpd.conf file.For örnek, varsayılan httpd.conf/etc/apache2/siteler-avaialbe/default bulmak emin olmak gerekiyordu.

 
<Directory "dir_name"> 
    Options All 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
<Directory> 

VEYA yalnızca varsayılan/cgi-bin klasörü kullanabilirsiniz.

.Set test komut dosyası izni yürütün. monte dosya sistemi çalıştırmak için izniniz varsa

 
chmod +x script_name 
+1

facepalm, davamda izin ver – elhombre

4

fstab'ı kontrol

UUID=xxx-xxx-xxx-xx-xx  /mnt/mountpoint  ext4  rw,user,exec  0  0 

exec kısım SELinux'un benim durumumda cgi yazısı erişmesini Apache engelledi

4

önemlidir. benim için çalıştı Kirli hızlı-n-düzeltme SELinux'u kapatarak edildi:

vim /etc/sysconfig/selinux 
set "SELINUX=disabled" 
reboot 
+1

neyse, şimdi wi inc. SELinux;) Davaya bir başka yerde cgi-bin dizini yarattığına inanıyorum, bu da 'semange fcontext -a -t httpd_sys_script_exec_t' komutunu kullanarak ilke listesine yeni bir dosya bağlamı eklemeniz gerektiği anlamına gelir. Yeni dosya içeriğini dosyalara uygulamak için yol/dizin// dizin (/.*)? "'ve sonra' restorecon -Rv/path/to/directory '). Man semanage-fcontext göz atın ve ÖRNEK bölümüne gidin, orada bu sürecin büyük bir örneği var. – elhombre

İlgili konular