61

I have a server with NFSv4. I am mounting contents of the home folder of remote user to local host. Able to read and write contents, but when I am checking ownership of files at the mounted volume from the local host, they all belongs to corresponding remote user and group (512). Is there any way to make it look like they belong to the local user and group (1000) on the local host?

/etc/exports on remote host (IP is 192.168.1.110)

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

/etc/fstab on local host (IP is 192.168.1.142)

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

4 Answers 4

56

This is what idmapping is suppose to do. First of all, enable is on the client and server:

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

clean idmap cache and restart idmap daemon:

# nfsidmap -c
# service rpcidmapd restart

Now on server and the client will send instead of numeric IDs string principals like [email protected]. You need to have bob account on the both hosts - client and server.

Nevertheless, the numeric ID's can be different.

6
  • 14
    Ftr, on nfs server the path is /sys/module/nfsd/parameters/nfs4_disable_idmapping (nfsd, not nfs) Dec 21, 2015 at 19:42
  • 4
    No service rpcidmapd on my Linux Mint client. Jun 20, 2016 at 17:17
  • 4
    Question about this answer: will doing echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping make this setting permanent, or will I have to reset it every time after reboot? Nov 18, 2016 at 11:36
  • 4
    Under Ubuntu the service is called idmapd instead of rpcidmapd Nov 18, 2016 at 11:37
  • 7
    Debian => idmapd from nfs-common package The service is named nfs-idmapd Nov 23, 2018 at 10:54
11

You have all the pieces there. From the exportfs man page, all_squash maps all uids and gids to the anonymous versions. What you wrote forced those values to be 512. If you changed to 1000, the nfs server on the remote host would make everything 1000, and access should be granted.

3
  • 1
    My uid on the client is 1000, the uid of the user with the same name on the server is 1003. I have tried setting anonuid=1000,anongid=1000 and anonuid=1003,anongid=1003 (and restarting the nfsserver, and un/remounting the share) and neither work. Downvoting, because this answer does not seem to work.
    – Phrogz
    Nov 9, 2016 at 17:36
  • Just to confirm, what are your export and fstab entries? Nov 9, 2016 at 17:39
  • 3
    /home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check) in exports, and 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intr in fstab
    – Phrogz
    Nov 9, 2016 at 17:40
5

on your nfs client, edit /etc/idmapd.conf and change

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

afther this restart the nfs service

1
  • 1
    I needed to run nfsidmap -c after updating /etc/idmapd.conf
    – David
    Oct 25, 2022 at 15:35
2

I was able to fix nobody:nobody ownership issue over NFS on CentOS 6 (server) + 7 (client) with two changes:

  1. Make sure the /etc/idmapd.conf Domain parameter is the same on server and client
  2. Server has an actual user with matching UID and GID to the client

then on the client

service nfs restart

and remount shares if necessary

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .