Mappage des UID et GID de l'utilisateur local sur le partage NFS monté

36

J'ai un serveur avec NFSv4. Je monte le contenu du dossier de base de l'utilisateur distant sur l'hôte local. Capable de lire et d'écrire le contenu, mais lorsque je vérifie la propriété des fichiers du volume monté à partir de l'hôte local, ils appartiennent tous à l'utilisateur et au groupe distants correspondants (512). Existe-t-il un moyen de donner l'impression qu'ils appartiennent à l'utilisateur et au groupe locaux (1000) sur l'hôte local?

/ etc / exports sur l' hôte distant (IP est 192.168.1.110)

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

/ etc / fstab sur l' hôte local (IP est 192.168.1.142)

192.168.1.110:/home/user512    /home/localuser/projects/project512   nfs    rw,hard,intr,rsize=32768,wsize=32768    0       0
Alexandre
la source

Réponses:

34

C'est ce que idmapping est supposé faire. Tout d’abord, enable est sur le client et le serveur:

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

nettoyer le cache idmap et redémarrer le démon idmap:

# nfsidmap -c
# service rpcidmapd restart

Maintenant, sur le serveur, le client envoie à la place des ID numériques des principes de chaîne tels que [email protected] . Vous devez avoir un compte bob sur les deux hôtes - client et serveur. Néanmoins, l'ID numérique peut être différent.

Kofemann
la source
7
Ftr, sur le serveur nfs, le chemin est / sys / module / nfsd / parameters / nfs4_disable_idmapping (nfsd, pas nfs)
Mike Purcell
2
Aucun service rpcidmapdsur mon client Linux Mint.
Corni
1
Question sur cette réponse: est-ce echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping que cela rendra ce paramètre permanent, ou devrai-je le réinitialiser à chaque fois après le redémarrage?
Mauritslamers
4
Sous Ubuntu, le service est appelé à la idmapdplace derpcidmapd
mauritslamers
2
Debian => idmapd du paquet nfs-common Le service est nomménfs-idmapd
Philippe Gachoud
5

Vous avez tous les morceaux là. A partir de la page de manuel exportfs, all_squashmappe tous les uids et gids aux versions anonymes. Ce que vous avez écrit a forcé ces valeurs à 512. Si vous passez à 1000, le serveur nfs sur l'hôte distant produira tout en 1000 et l'accès devra être accordé.

devenir plus sage
la source
Mon UID sur le client est 1000, l'UID de l'utilisateur portant le même nom sur le serveur est 1003. J'ai essayé de configurer anonuid=1000,anongid=1000et anonuid=1003,anongid=1003(et de redémarrer le serveur nfss, et de démonter / remonter le partage) et aucun des deux ne fonctionne. Vote négatif, parce que cette réponse ne semble pas fonctionner.
Phrogz
Juste pour confirmer, quelles sont vos entrées export et fstab?
devient
1
/home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)dans les exportations, et 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intrdans fstab
Phrogz
3

sur votre client nfs, éditez /etc/idmapd.conf et changez

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

après cela, redémarrez le service nfs

c4f4t0r
la source