it-swarm.asia

Bir klasörün linux'taki tüm kullanıcılara yazma erişimini nasıl sağlayabilirim?

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ı.

184
Carson Myers

/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.

313
jtimberman

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.

32
Krishna Modi

+ Yaz Oku:

Sudo chmod -R a+rw /var/www

Yürütme + yaz Oku +:

Sudo chmod -R a+rwx /var/www
27
paivaric

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.

7
Nikhil Chelliah

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.

2
user1138

Ben tipik olarak kullanırım

chmod g+w /folder/ -R

Neredeyse kendi kendini açıklıyor.

/folder/group içindeki herkes write erişimine (+w) sahip olacak şekilde ekler, -R, alt klasörler için özyinelemeye yöneliktir.

1
Arda