Memetakan UID dan GID pengguna lokal ke share NFS yang dipasang

36

Saya memiliki server dengan NFSv4. Saya sedang memasang konten folder rumah pengguna jarak jauh ke host lokal. Dapat membaca dan menulis konten, tetapi ketika saya memeriksa kepemilikan file pada volume yang dipasang dari host lokal, semuanya milik pengguna dan grup jarak jauh yang sesuai (512). Apakah ada cara untuk membuatnya tampak seperti milik pengguna dan grup lokal (1000) pada host lokal?

/ etc / ekspor pada host jarak jauh (IP adalah 192.168.1.110)

/home/user512 192.168.1.142(rw,sync,all_squash,anonuid=512,anongid=512)

/ etc / fstab pada host lokal (IP adalah 192.168.1.142)

192.168.1.110:/home/user512    /home/localuser/projects/project512   nfs    rw,hard,intr,rsize=32768,wsize=32768    0       0
Alexander
sumber

Jawaban:

34

Inilah yang seharusnya dilakukan oleh pemetaan. Pertama-tama, aktifkan ada di klien dan server:

# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping

bersihkan cache idmap dan restart daemon idmap:

# nfsidmap -c
# service rpcidmapd restart

Sekarang di server dan klien akan mengirim alih-alih prinsipal string ID numerik seperti [email protected] . Anda harus memiliki akun bob di kedua host - klien dan server. Namun demikian, ID numeriknya bisa berbeda.

kofemann
sumber
7
Ftr, pada server nfs jalannya adalah / sys / module / nfsd / parameter / nfs4_disable_idmapping (nfsd, bukan nfs)
Mike Purcell
2
Tidak ada layanan rpcidmapddi klien Linux Mint saya.
Corni
1
Pertanyaan tentang jawaban ini: apakah echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping membuat pengaturan ini permanen, atau haruskah saya mengatur ulang setiap kali setelah reboot?
mauritslamers
4
Di bawah Ubuntu, layanan ini disebut idmapdbukannyarpcidmapd
mauritslamers
2
Debian => idmapd dari paket nfs-common Layanan ini dinamainfs-idmapd
Philippe Gachoud
5

Anda memiliki semua bagian di sana. Dari halaman manual exportfs, petakan all_squashsemua uids dan gids ke versi anonim. Apa yang Anda tulis memaksa nilai-nilai itu menjadi 512. Jika Anda berubah menjadi 1000, server nfs pada host jarak jauh akan membuat semuanya menjadi 1000, dan akses harus diberikan.

menjadi paling lucu
sumber
Uid saya pada klien adalah 1000, uid pengguna dengan nama yang sama di server adalah 1003. Saya telah mencoba pengaturan anonuid=1000,anongid=1000dan anonuid=1003,anongid=1003(dan me-restart nfsserver, dan un / remounting share) dan tidak berfungsi. Downvoting, karena jawaban ini sepertinya tidak berhasil.
Phrogz
Hanya untuk mengonfirmasi, apa entri ekspor dan fstab Anda?
Menjadi yang
1
/home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)dalam ekspor, dan 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intrdalam fstab
Phrogz
3

pada klien nfs Anda, edit /etc/idmapd.conf dan ubah

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

setelah ini restart layanan nfs

c4f4t0r
sumber