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 sadece yazma erişimine izin verirdim.
Bunu nasıl yapabilirim?
Denedim sudo chmod 7777 /var/www
ama işe yaramadı.
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 sadece yazma erişimine izin verirdim.
Bunu nasıl yapabilirim?
Denedim sudo chmod 7777 /var/www
ama işe yaramadı.
Yanıtlar:
Yazabilmesi gereken birden fazla kullanıcıyla en iyi şekilde paylaşabilmek /var/www
için ortak bir gruba atanması gerekir. Örneğin Ubuntu ve Debian'daki web içeriği için varsayılan grup www-data
. Yazma erişimi gereken tüm kullanıcıların /var/www
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 altında oluşturulan tüm yeni dosya ve dizinler gruba /var/www
aittir www-data
.
sudo find /var/www -type d -exec chmod 2775 {} \;
Tüm dosyaları bul /var/www
ve sahibi ve grubuna okuma ve yazma izni ekle:
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.
sudo chmod -R g+w
değil g+rw
ya g+rwX
?
Bunu yapmanın daha basit bir yolu var, bu komutu yapmayı deneyin.
sudo chmod -R 757 /var/www
Temel olarak, chmod
komut izinleri değiştirir ve -R
anahtar tüm kullanıcıları etkiler. O zaman sadece kullanmak için doğru izinleri veriyor.
chmod $permissions -R $file
geçerli değil…
sudo chmod -R 757 /var/www
Ayrıca, jtimberman'ın erişim kontrolü listelerini kullanarak önerdiği şeyleri de çoğaltabilirsiniz . Setfacl komutu, varolan ACL yerine veya değiştirmek için -m -s 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'un aksine, bazı grupların bir dizine ve diğer grupların yalnızca diğerine erişebilmesini istiyorsanız, aslında 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. (Ekleme -a ) Kullanıcınıza ( user_name grubunda (kadar) -G ) www-data .
sudo usermod -a -G www-data user_name
b. Gruba ( g ) / var / www Recursively ( -R ) sahibi olan Kullanıcı ( u ) ile aynı ( = ) izinleri verin .
sudo chmod -R g=u /var/www
Açıklama: Debian / Ubuntu'daki Apache 2, User & Group www-verilerini / 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.
Deneyebilir chmod 0777 /var/www
misin
Bir uyarı: Herkesin bu klasöre erişmesine izin verirseniz, bu, sisteminize erişmeleri durumunda bilgisayar korsanlarının bu klasöre erişebileceği anlamına gelir. Bu nedenle, izin verilen bir kullanıcı grubu oluşturmak ve bu gruba yazma erişimi vermek daha iyidir.