Linux NFS maske oluştur ve kullanıcı eşdeğerini zorla


11

İki Linux sunucum var:

fileserver
Debian 5.0.3 (2.6.26-2-686)
Samba sürüm 3.4.2

apache
Ubuntu 10.04 LTS (2.6.32-23-jenerik)
Apache 2.2.14

Windows PC'lerden dosyalara erişebilmem için dosya sunucusunda bir dizi Samba paylaşımım var . Ben de ihraç ediyorum /data/www-dataiçin apache ben o kadar monte etmiştik sunucu /var/www.

NFS montajında ​​dosya oluşturmaya gelmem dışında kurulum tamam. Sonunda Apache tarafından okunamayan veya sistemimdeki diğer kullanıcılar tarafından değiştirilemeyen dosyalarla karşılaşıyorum.

Samba ile , ve belirtebilirim force user, bu da tüm dosyaların Apache web sunucum için uygun izinlerle oluşturulmasını sağlar. NFS ile bunu yapmanın bir yolunu bulamıyorum. NFS ile izinleri ve sahipliği zorlamanın bir yolu var mı?force groupcreate maskdirectory mask

Linux ile biraz zaman geçirmeme ve kendimi Windows'tan ayırmama rağmen, yine de Linux izinleriyle uğraşmak zorunda değilim ... Eğer bu bir şeyler yapmanın doğru yolu değilse, alternatif öneriler.

Yanıtlar:


12

Windows'dan geldiğiniz göz önüne alındığında, NFS'nin ... farklı olduğunu göreceksiniz.

Karşılaştığınız sorun oldukça yaygın. NFS, kullanıcı ve grup kimliklerinin her ikisinde de aynı şekilde eşleştiği varsayılarak , dosyalar / dizinlerin UID ve GID değerlerini makineler arasında ileri ve geri geçiriyor . Bu, sunucudaki UID / GID'nin bir NFS istemcisine geri iletildiği, ancak istemcide eşleştirilemediği /etc/passwdveya /etc/grouperişim olmadığı anlamına gelen bir durum alabileceğiniz anlamına gelir.

(Uzak) geçmişte bu, NIS ve NIS + ile birlikte düzenlendi, ancak bu çerçeveye sıkışmış başka şemalar da var (Samba'nın Winbind bunlardan biri). Ancak, bunun için merkezi bir kimlik sunucusu ve ardından çok sayıda el ile düzeltme izni gerekir.

Bunu düzeltmenin farklı yolları vardır, ancak en ucuz / en hızlısı her iki makinede de aynı grup kimlik numarasına sahip bir grup oluşturmaktır - örneğin, grup kimliği 50000 - ve uygun kullanıcıyı kullanıcı grubuna eklerken dosya sunucusunda grup bitlerini ayarlamaktır. müşteri grubu; daha sonra erişimi denetlemek için dosyalardaki grup izinlerini kullanın. Harika bir çözüm değil ama işe yarayacak. Çalışma zamanında gruplarını açıkça değiştiren hizmetlerle ilgili sorun yaşayabileceğinizi (diğer bir deyişle gizli bırakma) ve oluşturduğunuz grup olduğundan emin olmak için çalışma zamanında hangi grubun kabul edildiğini kontrol eden ayarı değiştirmeniz gerekebilir.

Bir Windows paylaşımı (Samba olarak da bilinir) aracılığıyla gelen dosyalar için, grubu oluşturduğunuz dosya ile aynı olmaya zorlayın. Bu şekilde tüm dosyalar otomatik olarak "doğru" GID'yi alır.


Düşünülen yanıt için teşekkürler. Grup bitleri yöntemine bakacağım ve nasıl başlayacağımı size bildireceğim.
Mike

www-dataDosya sunucusunda bir grup oluşturdum , gerekli kullanıcıları atadım, sonra www-dataher iki sunucuda da aynı grup kimliğini ayarladım . Ayrıca /data/www-dataklasördeki grup bitlerini de ayarladım chmod -R g+s /var/www-data. Şimdi mükemmel çalışıyor. Yardım ettiğin için teşekkür ederim.
Mike

Duyduğuma sevindim!
Avery Payne

NFS'nin bunu Mac istemcileri için yapabilmesi iyi olurdu.
d -_- b

9

all_squashDışa aktarılan tüm dosya ve klasörleri anonim (kullanıcı ve grup) yapan seçeneği kullanabilir ve bunları belirli bir GID ve UID'ye ekleyebilirsiniz.

/data/www-data apache(rw,all_squash,anonuid=<your UID>,anongid=<your GID>,sync)

Buradaki sorun, apachesunucudaki tüm kullanıcıların bağlama noktanızı nobody nobodykullanıcı ve grup olarak görmeleri ve bağlamada yazabilmeleridir (ancak yine de Samba sunucusunda dosyalar <your UID>/ olarak oluşturulacaktır <your GID>).


Bu benim sorunumu çözdü!
Luciano Andress Martini
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.