Bir dizinin apache yazılabilir olduğunu nasıl biliyoruz?


21

Bana bir görüntü klasörü ve bir varlık klasörü oluşturmam gerektiği ve şunları yazmam gerektiğinden emin olmam gerektiği söylendi: "apache yazılabilir". Ayrıca uygulama / çalışma zamanı dizinini web üzerinden yazılabilir yapmam istendi. Bu apache ile yazılabilir olarak aynı mı? Öyleyse:

Bunu bir kerede nasıl yapabilirim veya bunu nasıl bilebilirim?

Yapıyor gibi bir ls -lşey alıyorum:

drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets

Yanıtlar:


24

Apache, arka planda çalışan bir programdır. Apache başlangıçta kullanıcı tarafından başlatılır root(ayrıca denir root-process). Bu root-process, müşteri isteklerini yerine getiren birkaç alt işlem başlatır. Güvenlik nedeniyle, alt işlemler kullanıcı tarafından değil root, en az ayrıcalıklara sahip bir kullanıcı olarak çalıştırılır . Genellikle bu kullanıcının adı apacheveya www-data.

Bunun apache v1 için hangi kullanıcı olduğunu bulmak için:

ps -ef | grep httpd | grep -v grep

veya apache v2 için:

ps -ef | grep apache | grep -v grep

Apache 2'nin sonucu şöyle olacaktır:

root 5001 10 0 07:21? 00:00:00 / usr / sbin / apache2 -k başlangıcı
www-veri 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k başlangıcı
www-veri 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k başlangıcı
www-veri 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k başlangıcı

Bu durumda kullanıcı / grup www-data

Bu nedenle, bir web sunucusu tarafından bir dizini yazılabilir yapmak için direktörün sahibini veya grubunu Apache'nin sahibine veya grubuna ayarlamalı ve yazma iznini etkinleştirmeliyiz. Genellikle, dizini Apache grubuna ( apacheveya “www-data ya da alt süreçleri başlatmak için hangi kullanıcı kullanılırsa) ait olacak şekilde ayarlıyoruz ve grup için yazma iznini etkinleştiriyoruz.

chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir

( Yukarıdaki komutla www-databulduğunuz isim ps).

ilgili olarak:

2) Ayrıca uygulama / çalışma zamanı dizinini web üzerinden yazılabilir yapmam istendi. Bu apache ile yazılabilir olarak aynı mı?

Evet, bu Apache'nin beklediği gruba yazılabilir olarak ayarlamanız gereken bir dizin. Muhtemelen bu bir yerde olacak /var/www/veya içinde /etc/apache2/sites-enabled/ve / veya içinde sanal bir ana bilgisayar olarak ayarlanmış/etc/apache2/sites-available


Çok teşekkürler. Dizini mkdir ile oluşturmanın ve aynı zamanda bu izinleri vermenin bir yolu var mı?
MEM

Yapabileceğimiz de doğru mu: chmod -R o + w / veya / path / here? (Açıkçası -R seçeneği). ?
MEM

Evet 1 yöntem şöyle olur:mkdir dirname && chgrp www-data dirname
Rinzwind

@MEM evet. RKomutu verdiğiniz yerden tüm dizinleri yapacağız. Bunu yapmanın birçok yolu vardır;)
Rinzwind

2
ps -ef | grep [a]pachegrepçıktıdaki sahte çizgiden kaçınmak için kullanılan yaygın bir deyimdir .
enzotib
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.