nfs4 id-> пользовательская сторона клиента не работает

Ситуация - сервер и клиент nfs4, использующий rpc.idmapd для сопоставления идентификаторов. Отображение идентификатора работает на клиенте для существующих файлов, обслуживаемых с сервера.

На сервере:

[root@server ~]# id user1
uid=500(user1) gid=502(user1) groups=502(user1)
[root@server ~]# ls -l /mnt/san/temp
total 0
-rw-r--r-- 1 user1 user1 0 Aug 27 11:46 test1
[root@server ~]# ls -ln /mnt/san/temp
total 0
-rw-r--r-- 1 500 502 0 Aug 27 11:46 test1

На клиенте:

[user1@client ~]$ id user1
uid=504(user1) gid=506(user1) groups=506(user1)
[user1@client ~]$ ls -l /mnt/san/temp
total 0
-rw-r--r-- 1 user1 user1 0 Aug 27 11:46 test1
[user1@client ~]$ ls -ln /mnt/san/temp
total 0
-rw-r--r-- 1 504 506 0 Aug 27 11:46 test1

Так что все в порядке.

Однако создание файла из клиента:

[user1@client ~]$ touch /mnt/san/temp/test2
[user1@client ~]$ ls -l /mnt/san/temp
total 0
-rw-r--r-- 1 user1 user1 0 Aug 27 11:46 test1
-rw-rw-r-- 1 user2 user2 0 Aug 27 11:49 test2
[user1@client ~]$ ls -ln /mnt/san/temp
total 0
-rw-r--r-- 1 504 506 0 Aug 27 11:46 test1
-rw-rw-r-- 1 505 507 0 Aug 27 11:49 test2

На данный момент он не выполняет отображение id->name на стороне клиента.

Обе системы являются CentOS 5.x. Кстати, файлы /proc/net/rpc/nfs4.nametoid/content и /proc/net/rpc/nfs4.idtoname/content на клиенте пусты, но имеют записи на сервере.

Я включил запись в rpc.idmapd на клиенте, и / var / log / messages показывает, что он используется для сопоставления имен и идентификаторов, например: 27 августа 11:49:27 fw01 rpc.idmapd[11773]: Клиент 23: (user) name "user2@localdomain" -> id "505" Я ожидал, что соответствующий поиск id->name произойдет в тот момент, когда файл будет создан на стороне клиента.

Простое решение для синхронизации идентификаторов и использования nfsv3 на самом деле не вариант (как не просто!).

РЕДАКТИРОВАТЬ:

извините за путаницу

[user1@client ~]$ getent passwd 504 505
user1:x:504:506::...
user2:x:505:507::...
[user1@client ~]$ getent group 506 507
user1:x:506:
user2:x:507:

[root@server ~]# getent passwd 504 505
user2:x:504:506::...
[root@server ~]# getent group 506 507
user2:x:506:

то есть происходит то, что происходит создание файлов на клиенте, поскольку user1 (uid 504/gid 506) не переводится до создания на сервере. Он создается как 504/506 на сервере. На сервере это user2/user2, поэтому после этого он возвращается клиенту неправильно.

1 ответ

У меня тоже была такая же проблема, и я потратил некоторое время на изучение ответа. Кажется, что rpc.idmapd не поддерживает сопоставление идентификаторов и имен, что позволит вам вносить изменения в файловую систему. Однако я видел ссылку на тот факт, что это может работать, если вы монтируете с аутентификацией Kerberos ( http://permalink.gmane.org/gmane.linux.nfsv4/11363). Я сам еще не пробовал, потому что Kerberos, похоже, немного неудобно настраивать. Я собираюсь просто синхронизировать UID для простоты на этом этапе.

Другие вопросы по тегам