Apache2'yi Ubuntu'ya şimdi yükledim ve/var/www klasörünün korunduğunu fark ettim. Ben sadece Sudo
her şeyi yapabilirim ama ben sadece yazma erişimi verecekti.
Bunu nasıl yapabilirim?
Sudo chmod 7777 /var/www
denedim ama işe yaramadı.
/var/www
ile yazabilecek birden fazla kullanıcıyla en iyi şekilde paylaşım yapabilmek için ortak bir gruba atanması gerekir. Örneğin, Ubuntu ve Debian'daki web içeriği için varsayılan grup www-data
. /var/www
dosyasına yazma erişimi gereken tüm kullanıcıların bu grupta olduğundan emin olun.
Sudo usermod -a -G www-data <some_user>
Sonra doğru izinleri/var/www üzerine ayarlayın.
Sudo chgrp -R www-data /var/www
Sudo chmod -R g+w /var/www
Ayrıca, dizini ve altındaki tüm dizinleri "GID" olarak ayarlamanız gerekir, böylece /var/www
altında oluşturulan tüm yeni dosyaları ve dizinleri www-data
grubuna aittir.
Sudo find /var/www -type d -exec chmod 2775 {} \;
/var/www
içindeki tüm dosyaları bulun ve sahip ve gruba okuma ve yazma izni ekleyin:
Sudo find /var/www -type f -exec chmod ug+rw {} \;
Kendi hesabınıza izin veriyorsanız değişiklik yapabilmek için oturumu kapatıp tekrar giriş yapmanız gerekebilir.
Bunu yapmanın daha basit bir yolu var, bu komutu yapmayı deneyin.
Sudo chmod -R 757 /var/www
Temel olarak, chmod
komutu izinleri değiştirir ve -R
anahtarı tüm kullanıcıları etkiler. O zaman sadece kullanmak için doğru izinleri veriyor.
+ Yaz Oku:
Sudo chmod -R a+rw /var/www
Yürütme + yaz Oku +:
Sudo chmod -R a+rwx /var/www
Ayrıca, jtimberman'ın önerdiği şeyi erişim denetimi listeleri kullanarak da çoğaltabilirsiniz. setfacl komutu, mevcut bir ACL'yi değiştirmek için -s'yi veya değiştirmek için -m'yi kabul eder; Dizin ACL'lerini özyinelemeli yapmak için -R; ve -d belirtilen ayarları varsayılan yapmak için kullanılır; bu, gelecekteki kullanıcı hesaplarını tahmin ediyorsanız kullanışlıdır.
Bunlar sadece chmod kullanarak kullanıcı, grup, diğer ve maske için izinleri ayarlamanız yeterlidir:
setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY
Ve bu, belirli bir kullanıcı veya grubu için nasıl yapacağınız olabilir:
setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY
Ve elbette, güçlülüğü, grup ayarlarınızı değiştirmek zorunda kalmadan herhangi bir kullanıcıyı, birden fazla kullanıcıyı vb. Atayabilirsiniz. Ve chmod'dan farklı olarak, bazı grupların bir dizine ve diğer grupların yalnızca diğerine erişebilmesini istiyorsanız, setfacl ile mümkündür. Son olarak, bir direktörün ACL'lerini görüntülemek için, getfacl : komutunu çalıştırın.
getfacl DIRECTORY
Alt dizinlerin ACL'lerini görmek için -R'yi veya varsayılanları görmek için -d'yi belirtebilirsiniz.
Hızlı ve kolay cevap -
a. ( -a ) kullanıcınızı ( kullanıcı_adı ) grubuna ( -G ) www-data ekleyin.
Sudo usermod -a -G www-data user_name
b. Gruba ( g )/var/www Recursively ( u ) sahibi Kullanıcı ile aynı ( = ) izinlerini verin. -R ).
Sudo chmod -R g=u /var/www
Açıklama: Debian/Ubuntu'daki Apache 2, User & Group www-data 'ı/var/www ' nin sahibi olarak ayarlar. Kullanıcı için varsayılan izinler "İçeriği Görüntüle ve Değiştir" dir, ancak Grup yalnızca "İçeriği Görüntüle" yapabilir. Bu yüzden kendinizi www-data Grubuna eklemek ve wwww-data Kullanıcısı ile aynı izinleri vermek, gelişmenin hızlı ve kolay bir yoludur. Bunu tüm localhost (PC/Laptop) Web Geliştirme ortamları için yapıyorum.
Ben tipik olarak kullanırım
chmod g+w /folder/ -R
Neredeyse kendi kendini açıklıyor.
/folder/
g
roup içindeki herkes w
rite erişimine (+w
) sahip olacak şekilde ekler, -R
, alt klasörler için özyinelemeye yöneliktir.