Linux NFS4 tarafından biraz rahatsız oldum. “Dışarıda” bulunan bazı bilgiler diğer bilgilerle çakışıyor gibi görünüyor ve diğer bilgilerin bulunması zor görünüyor. İşte dikkatimi çeken birkaç şey var, umarım dışarıdaki biri buna ışık tutabilir.
Bu soru yalnızca Kerberos vb. Olmadan NFS4'e odaklanır.
1. İhracat
Bu exports
sayfada / etc / export yapısı ile ilgili belirsiz bilgiler bulunmaktadır .
Şundan alıntı yapmak için exports(5)
:
Ayrıca, her satır, yol adından sonra varsayılan seçenekler için bir çizgi ("-") ve ardından bir seçenek listesi şeklinde bir veya daha fazla belirtime sahip olabilir.
Seçenek listesi, yalnızca bu satırdaki müteakip tüm ihracatlar için kullanılır.
"Sadece bu hattan sonra gelen ihracat" ne demek
1.2 fsid=0
artık gerekli değil mi?
Linux-nfs listesinde bir yorum bulduğumda fsid = 0 ifadesine gerek kalmadı. Şimdi kafam karıştı, nfs4'e ihtiyacım var mı yok mu ?!
2. İhraç edilmeyen dizin hala takılabilir
Diyelim ki aşağıdaki ağacım var:
/exp
/exp/users
/exp/distr
/exp/distr/archlinux
/exp/distr/debian
Ve bu fstab girişinde aşağıdaki girişler var:
/dev/disk/by-label/users /mnt/users ext4 defaults 0 0
/dev/disk/by-label/distr /mnt/distr ext4 defaults 0 0
/mnt/users /exp/users none bind 0 0
/mnt/distr /exp/distr none bind 0 0
Ve ihracatım tam olarak bu:
/exp 192.168.1.0/24(fsid=0,rw,async,no_subtree_check,no_root_squash)
/exp/distr 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)
Ve exportfs -arv
gösterir:
exporting 192.168.1.0/24:/exp/distr
exporting 192.168.1.0/24:/exp
Öyleyse neden bunu yapabiliyorum ve bir müşteride hata alamıyorum:
mount -t nfs4 server:/exp/users /tmp/test
/exp/users
İhraç edilmese bile ? Bu dizini dışa aktarmadım ve /dev/disk/by-label/users
belirtmediğim sürece içeriğini göremiyorken crossmnt
yine de dizine yazabiliyorum. Oraya yazdığım her şey, altında /exp/users
olduğumda görülebilen temel dizine gider umount /exp/users; ls /exp/users
.
3. Tek vaka showmount -d server
Tarafından belirtildiği gibi rpc.mountd(8)
, bu komut şu anda istemciler tarafından takılmış olan dizinleri veya /var/lib/nfs/rmtab
okunabilecek şekilde eski girişleri göstermelidir :
Rpc.mountd daemon, her başarılı MNT isteğini / var / lib / nfs / rmtab dosyasına bir girdi ekleyerek kaydeder. Bir NFS istemcisinden bir UMNT isteği aldığında, rpc.mountd, eşleşen öğeyi dışa aktarma erişim listesinin dışa aktarmaya erişmesine izin verdiği sürece / var / lib / nfs / rmtab'den eşleşen girişi kaldırır.
(...)
Ancak, / var / lib / nfs / rmtab içeriğinin doğru olduğunu garanti etmenin çok az olduğuna dikkat edin. Bir müşteri UMNT'yi çağırdıktan sonra bile bir dışa aktarmaya erişmeye devam edebilir. İstemci UMNT isteği göndermeden yeniden başlatılırsa, söz konusu müşteri için / var / lib / nfs / rmtab öğesinde eski girdiler kalır.
Bunu okuduktan sonra kesinlikle merak ediyorum:
- Bu tür bir müşteri bilgisini sadece açığa vurmak çok güvensiz değil mi;
- Habersiz sunucu yöneticilerinin çok sayıda eski istemciye sahip bir rmtab'a sahip olma zorunluluğu yoktur ;
- Bununla NFS4 mountlamak istemciler nedeni mi
mount -v
"monte edilmiş bir şey" olsun gibi çıktı görmeye bile bir şey olsa edildi monte?
Nfs4 ile ilgili başka birçok sorum var, ancak şu anda bunu devam edeceğim .. :)