Synology NAS'ın NFS paylaşımına okuma / yazma erişimini nasıl alabilirim?


11

Yalnızca bağlı NFS paylaşımına okuma erişimim var.

NAS üzerinde ayarlanan 'squash mapping' olmadığında, Ubuntu normal kullanıcı paylaşmaya Permission deniedçalışırken alır cdve yalnızca kullanarak okuma erişimi elde eder sudo.
Squash 'tüm kullanıcıları yönetici ile eşle' ayarını kullanarak, istemci düzenli kullanıcı cdpaylaşıma girebilir ve yalnızca okuma erişimine sahip olabilir . Kullanmak sudoyazmaya izin vermez.


Synology NAS:
DS214> id username
uid=1026(username) gid=100(users) groups=100(users),101(administration)

kabak yok (harita yok)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)

all squash (tüm kullanıcıları yönetici ile eşleştir)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)

Ubuntu istemcisi:
$ cat /etc/fstab
10.1.1.214:/volume1/Files /mnt/nfs/Files nfs rw,user,auto 0 0

$ id username
uid=1000 gid=1000(username) groups=1000(username), <etc>

$ ls -n /mnt/nfs
drwxrwxrwx 9 0 0 4096 Sep 25 01:28 Files

$ ls -n /mnt/nfs/Files
drwxr-xr-x 11 1026 100 4096 Sep 24 22:05 Data


(Başlangıçta sudoetkin yazma erişimini kullanırken hata gönderdim ) Bağlı NFS paylaşımında bir dosyayı açabiliyorum sudo vi /mnt/nfs/Files/Data/test.fileama dosyadaki değişiklikleri bile yazamıyorum sudo. :w!Komut üzerine vi Hata mesajı :
"test.file" E212: Can't open file for writing


NFS, kullanıcı kimliklerine (UID'ler) karşı erişim izinlerini denetler. Yerel makinenizdeki kullanıcının UID'sinin sunucuda erişmeye çalıştığınız dosyaların sahibinin UID'siyle eşleşmesi gerekir . Sunucuya gidin ve dosya izinlerine bakın. Hangi UID'ye (ile öğrenin id username) aittirler ve hangi izinler ayarlanır?
Nefente

Hatta cdnormal bir kullanıcı olarak bağlantının içine bile girebilir misiniz ? Evet ise, aşağıdakileri öneririm. Şüphemi onaylamak veya reddetmek için aşağıdakileri yapın: İstemcide bağlantının cdiçine girin ve yapın ls -n. Bu, dosya sahiplerini ve gruplarını ilgili kimlikleriyle listeler. sudoSanırım bunu yapmak zorundasın . Sorunuza, çıktıdan bir veya iki satır ekleyin id (hayır sudo!) cdÇıktısıyla Bağlantına normal bir kullanıcı olarak bile katılamıyorsanız, dışa aktardığınız direktörün izinlerini kontrol etmeniz gerekir. sunucu.
Nefente

Bağlantının cdiçine normal bir kullanıcı olarak giremedim . İzinleri zorlamak için sunucuda Squash kullanmak, izin vermek için geçici bir düzeltme işlevi görür. Sunucu izinlerinin araştırılması ve id username.
marsilea

Teşekkürler, Squash ile kaba kuvvetten ziyade
nfs'yi

Değişir. Müşterilere ve kullanıcılara güveniyor musunuz? Bunu yapmazsanız, NFSv3 istemciye uygun değildir, çünkü bir istemciye kök erişimi olan herkes UID'leri taklit edebilir. Doğru kimlik doğrulamasına ihtiyacınız varsa, SMB'yi kullanmanız daha iyi olur. NFSv4 ile kimlik doğrulaması, oldukça karmaşık bir Kerberos çalıştırılmasını gerektirir. Ama yine de, çıktınız beni şaşırtıyor ... Bağlanma noktasının olduğunu varsayıyorum /mnt/nfs/Files. Her ne kadar Filesait olsa da root, izin herkesin bir şey yapmasına izin verir. Herhangi bir kullanıcı olarak bu dizine neden girmekte zorluk çektiğinizin bana bir anlamı yok. Belki ilgili satırı gönderebilir /etc/exports?
Nefente

Yanıtlar:


11

NFSv2 / 3 izinleri yalnızca UID ve GID'ye göre işler. Sunucudaki dosya izinleri, istemcideki kullanıcı ve grup kimlikleriyle eşleştirilir. Bu nedenle NFSv <4, kullanıcıların istemci makinelere kök erişimine sahip olduğu ortamlarda tasarım güvensizdir; Bu durumda UID kimlik sahtekarlığı önemsizdir.

NFSv4'ün Kerberos5 üzerinden istemci ve kullanıcı kimlik doğrulaması sunduğunu unutmayın. Kullanıcı adı ve şifre ile kimlik doğrulaması gerekiyorsa, saf Linux ortamlarında bile Kerberos kurmak yerine Samba'ya (SMB / CIFS) başvurmak genellikle daha kolaydır.

Az kök ayrıcalıkları tırmanmasını engellemek de için, NFS hisse seçeneğiyle varsayılan olarak ihraç edilmektedir root_squashgelen bütün istemci isteği eşler, root (uid=0, gid=0)karşı anonuidve anongid. Bu davranış no_root_squash, dışa aktarıma kök erişimi vererek geçersiz kılınabilir .

Burada başka bir dezavantaj görüyoruz. Düzgün çalışması için NFS temel olarak tüm makinelerde aynı UID / GID'ye sahip olmanızı gerektirir. 1026Erişmek istediğiniz dosyalar 755'e aittir ve izinlere sahiptir uid=1000. İstemcideki kullanıcı sizsiniz . GID'ler de eşleşmediğinden, yalnızca dünya izinlerine sahip olursunuz. Bu nedenle yazma erişimi yoktur.

Bu sorunu çözmek için birden çok şeyden birini yapabilirsiniz:

  • NAS üzerinde, dosyaların sahibini olarak değiştirin 1000. Belli bir hesabı oluşturmanız gerekebilir. Bunun diğer hizmetleri nasıl etkileyeceğini söyleyemem.

  • Yerel kullanıcınızın UID'sini olarak değiştirin 1026.

  • Sunucudaki dosyalara erişen tek kişi olduğunuzdan, sunucunun tüm isteklerin uygun UID'den geldiğini iddia edebilirsiniz. Bunun için NFS'nin seçeneği vardır all_squash. Sunucuya, tüm istekleri ile belirtilen anonim kullanıcıya eşlemesini söyler anonuid,anongid.

    all_squash,anonuid=1026,anongid=100Dışa aktarma seçeneğine seçenekleri ekleyin /etc/exports.

Yine de dikkatli olun , çünkü bu herkes ihracatın etkili bir şekilde bu dosyaların sahibi olmasını sağlayacaktır!

Ağınızı, dosyalarınızla ilgili kötülük yapmamak için tamamen güvenmediğiniz kişilerle ve istemcileriyle paylaşırsanız, gerçekten kimlik doğrulama sunan bir dosya paylaşımı yöntemine bakmanız gerekir. Bence Samba bunu başarmanın en kolay yoludur.


NFS'yi seçtim çünkü Linux'u Linux için avantajları olabileceğini düşündüm, çünkü NAS'ı rsync ile Ubuntu istemcisindeki harici USB sürücüsüne yedekleyebilmek istiyorum (Synology'nin DSM sistemi USB sürücüsüyle senkronizasyon sunmuyor) dosya sahipliği ve izin bilgilerini tutarken. Kapsamlı bir cevap ve rehberlik için teşekkürler.
marsilea

0

showmount -e 10.1.1.214Dışa aktarma seçeneklerini görmek için yapın . Permission deniedhatası NFS sunucusunun kendisinden geliyor. Dan seçeneği değiştirmek için deneyin rw,user,autoiçin defaults.

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.