Apache belge kökü için en iyi izinler / sahiplik


14

Apache belge kökünün doğru izinlerini veya sahipliğini ayarlama konusunda yardıma ihtiyacım var. İşte ihtiyacım olan şey:

  • farklı web siteleri /var/www/html/<site>
  • iki kullanıcı web sitelerini ssh üzerinden güncellemeli / yönetmelidir
  • sahiplik apache kullanıcıdan farklı olmalıdır (güvenlik için)

Bunu nasıl yapabilirim? Şu anda tüm dosyalar dünya tarafından yazılabilir, bu da iyi değil. Sunucu CentOS 5.5 çalıştırıyor

Teşekkürler


Bir doktora güvenliğini sağlama ile ilgili diğer seçeneklerle daha ayrıntılı bir yanıt için bkz. Serverfault.com/questions/357108/…
Quinn Comendant

Ben ayrı bir yerde her web sitesi depolamak için daha iyi olduğunu düşünüyorum sonra her sistem yöneticisi kullanıcının sahip sadece kendi web sitesinde (DocumentRoot, kullanım 2 sanal barındıran hem koymayın) ve Apache grubu olarak her iki web sitesi dizinleri grup sahibi set
muhasebeci

Yanıtlar:


22

Yeni bir grup oluştur

groupadd webadmin

Kullanıcılarınızı gruba ekleyin

usermod -a -G webadmin user1
usermod -a -G webadmin user2

Siteler dizininin sahipliğini değiştirme

chown root:webadmin /var/www/html/

Siteler dizininin izinlerini değiştirme

chmod 2775 /var/www/html/ -R

Artık herkes dosyaları (apache kullanıcısı dahil) okuyabilir ancak içeriğini yalnızca root ve webadmin değiştirebilir.


İyi görünüyor. Ancak bir kullanıcı yeni dosyalar oluşturursa veya güncellenmiş dosyaları kopyalarsa ne olur? Bu izinler otomatik olarak uygulanıyor mu? Yoksa her seferinde chown ve chmod yapması mı gerekiyor?
Marco

Kopyalanan dosyalar izinleri / sahipliği korur. Yeni dosyalar için varsayılan dosya izinleri umaskkomut tarafından işlenir . Daha fazla bilgi için burada osr507doc.sco.com/tr/OSUserG/_default_perms_new_file.html
Andy

3
dir setgid webadmin'in yeni dosyalara yardım
etmesini sağlayabilirsiniz

1
^ +1. Hızlı yol şöyle olurdu: >> chmod 2775 -R / var / www / html /
James Broadhead

@James ta, güncellendi
Andy

2

Bölümü -o acl ile monte etmeyi tercih ederim. Bu, yalnızca kullanıcı grubu diğer izinlerini belirtmek yerine setfacl komutunu dosya ve klasörler üzerinde ayrıntılı tanımlı izinler vermek için kullanmanızı sağlar.

Bu nedenle / etc / fstab içindeki bölüm satırınıza acl koyun veya mount -o remount, acl / mnt / xy ile remount koyun ve sonra web dizininizin sahipliğini kimseye verin: kimse. Chmod to 770 ve sadece ihtiyaç duyulan klasörlere yazma izinleri vermek için setfacl komutunu kullanın, örn. yükleme klasörü için www-verileri (veya web sunucunuzun çalıştığı kullanıcı) yazma izinleri verin ve dizinin tamamı için kendi kullanıcınıza yazma izinleri verin.

mkdir dir
chown nobody:nobody dir
setfacl -m u:www-data:r-x,d:u:www-data:r-x dir
setfacl -m u:www-data:rwx,d:u:www-data:rwx dir/upload
setfacl -m u:youruser:rwx,d:u:youruser:rwx dir

Artık hiç kimse dosyalarınızı, web sunucunuzu ve kendi kullanıcınızı okuyamaz. Klasördeki her dosyaya yazabilirsiniz ve web sunucusu yalnızca yükleme klasörüne yazabilir.

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.