Update sonrası erişim izinleri ile ilgili php hataları

Başlatan maximus___, 30 Kasım 2010 - 21:48:39

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

maximus___

Arkadaşlar az önce Ubuntu tarafından önerilen update leri yükledim ve sonrasında network içinden erişim yaparak kullandığımız, LAMP üzerindeki php programlarında hatalar almaya başladım. 

Session işlemleri esnasında /var/lib/php5 dizinine erişirken yetkilendirme hataları
bunun yanında /var/www dizini ile ilgili benzer hatalar aldım.

Sonrasında gidip her iki dizinin de kullanıcısını ve grubunu "www-data" olarak değiştirdim.
ve /var/lib/php5 dizinin erişim yetkisini 777 , /var/www dizininin 775 yaptım.
bu işlemlerden sonra, php programları tekrar çalışmaya başladı.

sorularıma gelince,
1) Bu en son update ile ilgili herhangi bir sorun mu (bug vs) var? Yoksa olağan bir şey mi? Olağan * bir şey ise update yapmak çok riskli olmuyor mu?
2) Sistemde (özellikle de php yüklemesinde veya ayarlarında) ne değiştirdi update?
3) Bu bahsettiğim dizinlerin, web e açık bir sunucuda, erişim yetkileri (permissions) ne olmalı? (Yani hem güvenlik açığı vermemek, hem de hemen hemen tüm sıradan php scriptlerinin çalışmasını sağlamak için..)

Kullandığım sürüm: Ubuntu desktop 64 bit 10.04 lts

Yardımlarınız için şimdiden çok teşekkür ederim.

saygılarımla


heartsmagic

Birinci sorundaki böcek olasılığı daha yüksek zira bu çok normal bir durum değil. Haliyle her güncellemede bu tür sorunların olmaması lazım, bu nedenle güncelleme yapmak çok riskli değil. Fakat sorun olmaz diye bir kaide yok elbette, bu nedenle önemli işlerimizin yürütüldüğü sistemleri güncellemeden önce etrafı gezinmekte yarar olabilir.

Güncellemenin ne değiştirdiğini aslında yapmadan önce az çok anlayabilirdin, zira sana değişecek paketleri ve bu paketlerdeki etkileri listelemiştir.

Aslında son sorun konusunda çok bilgili değilim, fakat cevabın değişken olabileceğini tahmin ediyorum. Mesela www dizini root sahipliğinde ve sadece root yazabiliyor. Sen bunun altında hizmet verdiğin dizinler için amaca yönelik izin yapılandırması oluşturmalısın. Örneğin bir dizin vardır ki o dizine yazılma yapılması gerekir, haliyle yazma hakkı verirsin. Fakat bir dizin vardır ki yazma hakkı kapalıdır ki genelde sanırım böyledir durum. Öyle bir dizin de vardır ki, sahibi haricinde herkese erişimi kapalı olmalıdır.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

maximus___

cevabı için çok teşekkür ederim.

ben haldur huldur bakmadan güncellemeleri kabul edip yüklüyorum. nasıl olsa ubuntunun resmi deposunan geliyor ve mutlaka düzgün kontrol edilmiştir diye. demek ki ayrı bir makina ayırıp onda güncellemeleri önce test edeceğiz. emin olduktan sonra gerçek sistem de kuracağız.

bu arada linux macerasına başlamadan önce çok düşündüm. (hala da düşünüyorum) debian mı ? ubuntu mu? alt alta bir çok kriteri koydum ve ubuntu daha ağır basmıştı. çoğu zaman debian ın katı kuralları eleştirilir. ben de bu eleştirilere kısmen katılıyordum. şimdi benim olayım çok önemli değil. dizin izinlerini istediğim gibi değiştirebilirim. nasıl olsa dışarıya açık değil. sadece local network de birkaç php programı çalışıyor.  ama düşünün bir dedicated sunucularınız var, hosting işi yapıyorsunuz... bunun gibi ufak bir dalgınlık başınızı belaya sokabilir. sanırım sunucu sistemlerde debian daha mantıklı ama benim gibi bilgisayarı hem sunucu hem de masaüstü olarak kullanıyorsanız. ubuntu daha uygun. tek bir driver yüklemeden ubuntu kurulumu yaptım. eee bu kadar kolaylığın bir bedeli olacak sanırım. yani debian mı ubuntu mu sorusu çok kafamı karıştırıyor. amaca göre kullanılmalı denebilir ama ben sadece birine odaklanmak istiyorum. daha doğrusu tek bir işletim sistemi ile her işimi göreyim istiyorum. e hepsi birden de bir arada olmuyor. ama keşke olsa. sesli düşündüm. daha doğrusu yazılı düşündüm :)

teşekkür ederim.

heartsmagic

@maximus___, değerlendirmelerin kısmen doğru fakat temelinde tümden geçerli olmayabilir. Zira sorun her dağıtımla yaşanabilir. Fakat her güncelleme sorun getirecek diye bir kaide yok, ayrıca bu sorun sana da has olabilir. Etrafa bakılabilir, genel mi diye, hata kaydı var mı diye. Nasıl sana has olabilir? Kurmuşsundur sistemi, kendine göre yapılandırmışsındır bazı şeyleri. İşte o yapılandırma sorun yaşatmış olabilir sana.

Çok fazla PHP ve Apache ile işim olmadığı için güncellemeler beni etkiledi mi bilemiyorum, denetlemem de imkânsız. Fakat söylediğim üzere genele bakılabilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

maximus___

#4
haklısın bana özel de olabilir tabi. onu göz ardı etmiyorum. işletim sistemi üzerinde yaptığım işlemleri not almadığım için kesin konuşamayacağım ama LAMP yapılandırmasına hemen hemen hiç dokunmadım. yine de emin olamıyorum çünkü konuyla ilgili, dün, ubuntuforums.org da da yeni açılan başlık varmı diye baktım ama dünkü güncelleştirme ile ilgili böyle bir başlık göremedim.

bir de şöyle bir durum var. sanılmasın ki ubuntu dan memnun değilim. açık söylemek gerekirse şimdiye kadar kulandığım en sağlam işletim sistemi ubuntu 10.04 64 bit. debian, freebsd vs kullanmadım hiç. ama vindoz ile karşılaştırmak gerekirse karşılaştırma yapmaya kalkılırsa arada dağlar kadar fark var. bu farkların neler olduğu konusunda yıllardır yazılıp çiziliyor. tekrar yazmaya gerek yok. üstelik çoğunun söyledği gibi vindoz, kullanması daha kolay bir işletim sistemi değil. ubuntu kullanım kolaylığı açısından da fersah fersah önde bana göre. sadece alışkanlık meselesi. kimileri vindozdaki alışkanlıklarının aynısını istiyor. bu beklenti de hataya düşürüyor insanları. linuxa başlarken vindoz daki tüm alışklanlıkları bir kenarıya itip, yeni bir işletim sisteminin getirebilmesi muhtemel güzelliklere kendmizi açmamız gerekiyor.

bu ikinnci parakgrafı neden yazdım? şunun için yazdım. yukarıda ubuntu hakkında yazdıklarım, kökten bir eleştiri değil. sadece linux kullanım alışkanlıklarımı şekillendirme açısından bir tespitti. güncelleme yaparken dikkatli olmak lazım. bir sonuç çıkarmaydı. yoksa açık söyleyeyim. şu kullandığım işletim sistemi ücretli olsa ve vindoz un iki katı parayla satılıyor olsaydı, bütün samimiyetimle söylüyorum; para verip alırdım. o kadar farklı bir işletim sistemi.

saygılar

----------------------------------------------------------------------------

başlığı okuyanlar ihtiyaç duyar belki. bu nedenle birkaç ekleme yapayım arkadaşiar...

bu sorun linux ile ya da ubuntu ile ilgili değil, php nin kendisi ile ilgili gibi görünüyor. zira aynı sorun debian da da mevcut. hem ubuntu, hem de debian tarafındaki ilgili bug kayıtlarını aşağıdaki linklerden detaylı önceleyebilirsiniz. sorunun nedenleri detaylı olarak tartışılmış. ve sonuç olarak hem debian hem de ubuntu tarafından düzeltilmeyecek düşük seviyeli bug olarak işaretlenip rafa kaldırılmış.
https://bugs.launchpad.net/ubuntu/+source/php5/+bug/619855
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=388808
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=321460

özetlemek gerekirse, php 5.3 ile birlikte gelen "session garbage collection", ilgili dizinlerdeki artık kullanılmayacak olan oturum kayıtlarını silmeye çalışıyor ve dizinin yetkilendirmeleri yetersiz kaldığı için hata veriyor. bunu aşmak için ya E_NOTICE disable edilecek, ya "garbage collection" disable edilecek ya da dizinlerin erişim yetkileri yükseltilecek. artık hangisi işinize gelirse. çok saçma bir durum olmuş gerçekten.

ilgilenenlere duyurulur...

birincisinden vazgeçmek her zaman mümkün değil, özellikle geliştirme yapanlar için.
garbage collection konusunu ilk kez duydum ve gerçekten performansı olumlu yönde etkileyen bir yenilik gibi görünüyor. yani kullanılmalı.
erişim yetkilerinin yükseltilmesi ise başlıbaşına bir konu. linux-lamp-güvenlik konularında uzman bir arkadaş çıkıp ta bu erişim yetkilerinin arttırılmasının ne gibi güvenlik zaafı oluşturacağını ve en doğru yetkilerin ne olacağını açıklarsa çok iyi olur. çünkü özellikle shared hosting kullananlar için sorun olabilir gibime geliyor. bir sitenin oturum bilgilerine diğer sitenin erişememesi gerekir. bu şekilde yetkilendirilme yapılırsa bu nasıl sağlanacak. php nin oturum bilgilerini bu dizinde saklamasının mantığını çözemedim. aslına bakılırsa konu genel olarak kafamı karıştırdı. ya kaçırdığım ve anlamadığım birşeyler var ya da ortada çok büyük bir saçmalık var php açısından.

kolay gelsin.

heartsmagic

@maximus___, doğrudan eleştiri veya serzeniş olarak algılamadım söyledilerini. Kaldı ki olumlu olduğun her halinden belli. Benimki de bilgi amaçlıydı.

Sorunu ve çözümü paylaştığın için teşekkürler. Hata kayıtlarına bakamıyorum ancak izinlerin değişeceği dizinler muhtemelen çok hayati dizinler değildir. Tam olarak hangi dizinden bahsediliyor?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

maximus___

/var/lib/php5   dizini...

bu dizine kaydedilen oturum bilgilerinin, süresi dolduğunda garbage colleciton denilen ve php 5.3 ile gelen özellik tarafından otomatik olarak silinmeye çalışılması ve dolayısı ile izinlerin yetersiz olması nedeni ile hata vermesi. olay kısa bu aslında.

risk olma durumu şöyle olabilir. uzmanı değilim sadece fikir jimlastiği yapıyorum; örneğin bir shared hosting de 100 tane internet sitesi mevcut. bunlarda kullanılan kullanıcı girişleri ile ilgili oturum bilgileri /var/lib/php5 dizininde tutuluyor. şimdi biz www-data (apache kullanıcısı) ya bu dizini direkt görüntüleme ve dosyaları çalıştırma izni verirsek. siteler birbirlerinin oturum bilgilerine ulaşabilir. dolayısı ile sunucu kaynaklı bir güvenlik açığı ortaya çıkar. (mı acaba?)

alquirel

Şuanda Turhost.com da bulunan siteme erişemiyorum ben de, bıraksam saatlerce "yükleniyor" şeklinde kalıyor.

Güncelleme ile ilgili bi sıkıntı olabilir mi ki acaba sunucuda? En son baktığımda 5.2 de idiler.

maximus___

Alıntı yapılan: alquirel - 02 Aralık 2010 - 18:05:01
Şuanda Turhost.com da bulunan siteme erişemiyorum ben de, bıraksam saatlerce "yükleniyor" şeklinde kalıyor.

Güncelleme ile ilgili bi sıkıntı olabilir mi ki acaba sunucuda? En son baktığımda 5.2 de idiler.

bu sorunla ilgili olduğunu sanmıyorum. çünkü apache çalışıyor. yani eğer oturum işlemleri yapan bir script çalışmıyorsa herhangi bir hata almıyorsunuz bu yukarıdaki sorunda. eğer oturum kullanıyorsanız da hatayı da direkt olarak yazıyor ekrana. aşağıdakine benzer hata basıyor;
Notice: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied..........

yani öyle yükleniyor vs gibi donup kalmıyor sunucu... ama yine de detayını, hosting firmasından sorgulamakta fayda var.

heartsmagic

O dizine hangi izinlerin verileceği de önem arz ediyor. Hata kayıtlarını baştan sonra okuyamadığım için net bir fikir belirtemiyorum, kaldı ki aslında bu konunun uzmanı da değilim.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.