Отображение UID и GID локального пользователя на смонтированный общий ресурс NFS


36

У меня есть сервер с NFSv4. Я монтирую содержимое домашней папки удаленного пользователя на локальный хост. Может читать и записывать содержимое, но когда я проверяю принадлежность файлов на подключенном томе с локального хоста, все они принадлежат соответствующему удаленному пользователю и группе (512). Есть ли способ заставить его выглядеть так, будто он принадлежит локальному пользователю и группе (1000) на локальном хосте?

/ etc / exports на удаленном хосте (IP-адрес 192.168.1.110)

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

/ etc / fstab на локальном хосте (IP-адрес 192.168.1.142)

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

Ответы:


34

Это то, что должно делать idmapping. Прежде всего, enable есть на клиенте и сервере:

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

очистите кэш idmap и перезапустите демон idmap:

# nfsidmap -c
# service rpcidmapd restart

Теперь на сервер и клиент будут отправлять вместо числовых идентификаторов строковые принципы, такие как bob@YOURDOMAIN.COM . Вы должны иметь учетную запись bob на обоих хостах - клиенте и сервере. Тем не менее, числовые идентификаторы могут быть разными.


7
Ftr, на сервере nfs путь это / sys / module / nfsd / parameters / nfs4_disable_idmapping (nfsd, а не nfs)
Майк Перселл

2
Нет службы rpcidmapdна моем клиенте Linux Mint.
Корни

1
Вопрос об этом ответе: echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping сделает ли этот параметр постоянным или мне придется сбрасывать его каждый раз после перезагрузки?
Mauritslamers

4
Под Ubuntu сервис называется idmapdвместоrpcidmapd
mauritslamers

2
Debian => idmapd из пакета nfs-common Служба называетсяnfs-idmapd
Филипп Гачу

5

У вас есть все кусочки там. На странице руководства exportfs all_squashотображаются все идентификаторы и анонимные версии. То, что вы написали, заставило эти значения быть 512. Если вы измените на 1000, сервер nfs на удаленном хосте сделает все 1000, и доступ должен быть предоставлен.


Мой uid на клиенте - 1000, uid пользователя с тем же именем на сервере - 1003. Я попытался установить anonuid=1000,anongid=1000и anonuid=1003,anongid=1003(и перезапустить nfsserver, и удалить / перемонтировать общий ресурс), и ни один из них не работает. Downvoting, потому что этот ответ, похоже, не работает.
Phrogz

Просто чтобы подтвердить, каковы ваши записи экспорта и fstab?
становится

1
/home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)в экспорте и 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intrв
фстабе

3

на вашем клиентском NFS отредактируйте /etc/idmapd.conf и измените

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

после этого перезапустите службу NFS

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.