Sunucum Yöneticisi bir dizinde genel yazma izinleri belirlememi istiyor


9

Web geliştirmede nispeten yeniyim, bu yüzden lütfen sabırlı olun.

Öncelikle bir iPhone geliştiricisiyim, ancak yakın zamanda paylaşılan barındırma kullanan başka biri için bir site yaptım. Ben izinleri düşünmek zorunda kalmadan, bu sitede PHP dosyalara yazabilirsiniz.

Yaptığım yeni bir uygulama için bir web hizmeti dağıtma sürecindeyim, ancak gerçekten sorunsuz gitmiyor. Burada en önemli fark, başkasının sunucusunu kullanıyorum ve sadece FTP / DB erişimine sahibim.

Temel olarak, böyle benim CMS oluşturan PHP dosyaları bir yük var:

mysite.com/admin/manage_news.php
mysite.com/admin/manage_events.php

Bu komut dosyaları daha sonra veritabanını veya dosyaları düzenler. DB para cezası ile etkileşime girebilir, ancak komut dosyalarım dosya sistemine yazamıyor. Örneğin, aşağıdaki dosyalara yazmaya çalışabilirler:

mysite.com/data/img/event_1.png
mysite.com/data/somefile.txt

Bu benim MAMP yüklemede iyi çalıştı (yerel olarak), ama bir kez sunucuya dağıtıldığında, PHP bir yazma denemesinde her zaman hatalar dile getirdi ... böyle bir şey:

"../Data/img/someimage.png" dosyası yazmak için açılamadı.

Bu yüzden sunucuyu çalıştıran adama e-posta gönderdim ve geri geldi:

Kamu izniyle çalışıyor mu? (777)

Ve yaptı - ama kamu izinlerini kullanırken çok dikkatliydim, bu yüzden hemen tekrar devre dışı bıraktım. Ona "Standart komutları kullanarak PHP komut dosyalarımı nasıl yazabilirim" diyerek e-posta gönderdim ve şöyle dedi:

Herkese açık olarak bırak, iyi olacak

Alan adı çözünürlüğünde bir yerde bir ip çakışması olduğunu düşünüyorum, ama bunun için endişelenmiyorum.

Daha sonra "kesinlikle bu güvensizdir" ya da bu hatlar boyunca bir şey söyleyerek e-postayla gönderdim ve şöyle cevap verdi:

Gerçek şu ki, çeşitli klasörlerde 777 olan birkaç yönettiğim milyonlarca web sitesi var, bu sadece bir yaşam tarzı.

Birisi bana verebileceğim bir çözüm hakkında fikir verebilir mi? Veya 777 kullanmak zorunda kalmamak için ne yapabilirim? Sitemdeki / hizmetimdeki herhangi bir klasör fikrinin herkese açık olarak yazılabilir olmasını gerçekten sevmiyorum.

Web sunucuları hakkında çok az şey bildiğim için tavsiyelerinizi çok takdir ediyorum.


12
Bu adamdan kaç ve geriye bakma.
user9517

Gerçekten bir seçenek değil ... SvenW'nin cevabındaki yorumlara bakın ...
Alex Coplan

Yanıtlar:


13

Hadi yıkalım :

Komut dosyasını çalıştıran kullanıcının dizini okumak, yürütmek ve yazmak için kullanmanız gerekir, bu nedenle:

7 = (r) ead, (w) ayin, e (x) ekute

Aynı gruba ait diğer kullanıcılar, php dosyasını dizinde yürütebilmeli, ancak bu dosyaya yazamamalıdır (belirgin nedenlerle); PHP dosyalarını okumaları gerekmez. Bu nedenle, yalnızca yürütme izinleri sağlamalıyız:

1 = e (x) okut

Halk için de aynı. Aslında, php ve statik dosyaları görüntülemesi gereken harici kullanıcılar için ihtiyacınız olan tek şey budur:

1 = e (x) okut

Bu yüzden minimum minimum olmalıdır:

711

Yukarıdaki ayarları kendi yapılandırmamla onayladım, bu yüzden çalışmalı; ancak, bu varsayılan web kullanıcısı altındadır. Www dışında bir oturum açma ile karşıya yükleme yapıyorsanız, dosyalar ve dizinler muhtemelen farklı bir kullanıcı altında olacaktır. Bu durumda, varsayılan web kullanıcısı size ait olan dosyaları okuyamayabilir veya yazamayabilir. Bu noktada, muhtemelen grubunuza varsayılan web kullanıcısını eklemeniz gerekir (sysadmin bunu yapmak zorunda kalacaktır) ve ardından gruba ait kullanıcılara okuma, yazma ve yürütme izinleri vermeniz gerekir:

771

Ve bu muhtemelen işe yarar. Ya bu, ya da sysadmin, bu dosyaların kullanıcı ve grup sahipliğini varsayılan web sunucusu kullanıcısına değiştirsin (ancak İZİNLER DEĞİL!). Bu yine de işe yaramazsa, izinlerin örnek bir çıktısı ("dizin içinde" ls -la "gibi bir şey) bu sorunu daha fazla gidermemize yardımcı olacaktır. veya "diğer"), güvenlik açısından iyi olmalısınız.


2
Keşke iki kez oy verebilseydim.
Wesley

Sorun gerçekten web sitesi izinleri kendileri yerine kendi yapısı içinde dosyalara yazmamalıdır olmasıdır.
JamesRyan

Haklısın. Verilere bağlı olarak, büyük olasılıkla genel web kökünün dışındaki bir dosyaya yazmak istersiniz.
Rilindo

Burada bir yazıyorum /dataklasörün - Bu klasör (a web hizmetinde aşağı geçti benim JSON web hizmeti ve içerik için kullanılır görüntülerin bir demet oluşturan PHP içeren /data/imgklasöre)
Alex Coplan

Öyleyse, resimlerin halka açık olması gerekiyor mu? Bu netlik kazandı.
19:29

18
Leave it as public, it'll be fine

I reckon it's an ip conflict somewhere in the domain resolution, 
but I'm not worried about it.

Bu adam aptal ve bu tam bir saçmalık. Erişim haklarının IP adresi veya etki alanı çözümlemesi ile bir ilgisi yoktur, sadece kelimeleri düşürmektedir.

Bu "yöneticinin" kalitesi göz önüne alındığında, sitenizi başka bir yerde barındırmanızı öneriyorum çünkü site çok kötü ve güvenli bir şekilde yönetilmiyor. İşe 777yaraması için bir şeye izin vermek, ne yaptığını biraz anlamadığına dair kesin bir işarettir.

Hangi erişim haklarının gerçekten gerekli olduğu, sistemin nasıl kullanıldığına ve yapılandırıldığına bağlıdır ve bunu bilmeden size bir şey söylemek zordur.


teşekkürler - düşüncem tam olarak izinler hakkında - Gerçekten başka bir yerde barındırmak için bir seçeneğim yok, çünkü geliştirdiğim şirket bunun için ödeme yapmayacak ve bana bu adamı tavsiye etti ve onu alacaklarını söyledi Ücretsiz olarak yap - söyleyebileceğim kadarıyla sanal sunucularından birini çalıştırıyorum. Peki normalde nasıl çalışır, bir PHP betiği "kullanıcı" olarak nasıl çalışabilir ve bu nedenle sitedeki herhangi bir şeye yazabilir mi?
Alex Coplan

Peki, onlara "ücretsiz" aldıkları hakkında bilgi veririm. Herhangi bir paylaşılan barındırma ile çok deneyimim yok, bu yüzden bu konuda yorum yapamam. Benim sitelerin tüm Debian web sunucuları ve ihtiyaç yazılabilir ait olacak olan bu klasörleri çalıştırmak www-dataile 700izinleri, ancak bu muhtemelen sizin durumunuzda işe gitmiyor.
Sven

Bence onlar da kendi ana site için ödeme yapıyorlar, bu yüzden - bu yüzden herhangi bir sunucu hata sayfasının altındaki herhangi bir yardım varsa bunu söylüyorApache/2.2.9 (Debian) PHP/5.2.6-1
Alex Coplan 18:11

Ayrıca bu vps paylaşılmaz
Alex Coplan

2
Dosyalarınızın hangi izin ve sahipliklerin sunucuya aktarılabileceğini anlamaya çalışıyorum. En azından www-datagrubun üyesi olmayan bir kullanıcıysa , aktarımdan sonra kullanıcıları / grupları değiştirmeniz veya gerçekten de 777izinleri kullanmanız gerekir . Ama bu anlamsız, size bu şekilde yardım edemeyiz.
Sven
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.