У меня есть две машины с установленной CentOS 6.4, подключенные к одной частной сети.
Один из них служит NFS-сервером, а другой - клиентом.
На серверной машине (сервере) я экспортировал каталог /net/directory
добавив строку в /etc/exports
файл
/net/directory *(rw,sync,no_root_squash)
После запуска службы я перешел к клиенту и добавил точку монтирования в /etc/fstab
server:/net/directory /client/directory nfs defaults 0 0
А затем установил
# mount /client/directory
Проблема в том, что когда я создаю новый файл / каталог внутри смонтированной точки от клиента, этот файл будет отображаться как nobody:nobody
при создании неизвестным пользователем на стороне сервера.
Вот пример (для пояснения)
Только на стороне клиента есть пользователь и группа с таким же именем под названием testuser
На стороне клиента я создаю файл как testuser
[testuser@client ~]# touch /client/directory/test
Затем я перечисляю содержимое каталога
[testuser@client ~]# ls -l /client/directory
total 0
-rw-r--r--. 1 nobody nobody 0 Jul 2 16:46 test
А вот на стороне сервера все как положено:
[root@earth ~]# ls -l /net/directory
total 0
-rw-r--r--. 1 1001 1001 0 Jul 2 16:46 test
Мне нужен такой же результат на стороне клиента:
- файл должен быть с UID: GID как 1001: 1001
Что я делаю не так? Это проблема сервера или клиента?
Я просмотрел несколько руководств по NFS, и ничего не помогло.
Кто-нибудь знает, как я могу это сделать (без создания пользователя на стороне сервера)?
Спасибо.
Убедитесь, что домен в /etc/idmapd.conf совпадает на клиенте и сервере. Убедитесь, что rpc.idmapd запущен на клиенте и сервере. И, конечно же, пользователь должен существовать на клиенте и сервере. NFSv4 использует принципалов пользователей по сети, и клиент и сервер несут ответственность за обеспечение правильного сопоставления. Поскольку вы используете AUTH_SYS, локальный uid / gid передается на сервер при создании, но для работы требуется сопоставление ls.