Файлы, подключенные через NFSv4, принадлежат 4294967294, идентификаторы UID и GID совпадают


23

У меня есть две одинаковые машины Linux (идентичные образы, запущенные в Amazon EC2), и я пытаюсь смонтировать экспортированный каталог через NFSv4. Вот как выглядит смонтированный каталог на клиентском компьютере:

root@server:~# ls -l /websites/
drwxr-xr-x  6 4294967294 4294967294   92 2010-01-01 20:21 logs
drwxr-xr-x  2 4294967294 4294967294   20 2009-12-23 01:14 monit.d
...

Я дважды проверил, чтобы убедиться, что идентификаторы совпадают

Вот команда монтирования, которую я запускаю с клиента

/sbin/mount.nfs4 $MASTER_DN:/ /websites -o rw,_netdev,async

А вот и /etc/exportsзапись на сервере машины:

/websites 10.0.0.0/8(fsid=0,no_subtree_check,rw,no_root_squash)

запущен сервис rpcidmapd? запустить их с помощью команд. /etc/init.d/rpcidmapd перезапустить chkconfig rpcidmapd on

Ответы:


8

Как объясняется в UID / GID с NFS и ZFS , NFSv4 не использует UID. У меня была похожая проблема, и я смог обойти ее, используя NFSv3. Это влечет за собой добавление -o vers=3в mountкоманду. Конечно, если вам нужно использовать NFSv4, этот ответ не будет вам полезен.


7

читайте здесь http://blather.michaelwlucas.com/archives/796

Если имена доменов клиента и сервера NFSv4 не совпадают, все имена пользователей будут отображаться как «никто».

  1. отредактируйте /etc/idmapd.conf и установите Домен на сервере и клиенте в "localdomain"

    [Генеральный]

    Домен = локальный домен

    [Перевод]

    Method = nsswitch

  2. измените файл / etc / default / nfs-common (как на вашем сервере, так и на клиенте): установите NEED_IDMAPD = yes

  3. запустить сервис idmapd


Для меня этот ответ решил проблему, которая у меня была (после того, как «idmapd» потерпел крах по какой-то причине).
Хенк

7

Это проблема отображения идентификатора пользователя. По какой-то причине система использует учетную запись «nobody» вместо истинных идентификаторов учетных записей. Проверьте ваши параметры сжатия и ваш файл idmapd.conf.

Вот нить, которую я нашел, которая обсуждает проблему, это ссылки на интересующий пост, http://www.mail-archive.com/rhelv5-list@redhat.com/msg03303.html .

К вашему сведению, 4294967294 равен -2, если рассматривается как 32-разрядное целое число со знаком. -1 или -2 используются в различных дистрибутивах Linux для UID nobody и GID nogroup (в файле passwd обычно используется старшее 16-битное число без знака, 65535).


Спасибо за ответ, Дэвид. За мой пост я no_root_squashвключил. У вас есть больше информации о файле idmapd.conf?
jberryman

3

Вам нужно изменить файл / etc / default / nfs-common ( как на вашем сервере, так и на клиенте): установите NEED_IDMAPDв yes.

По крайней мере, это помогло мне.


2

Мы используем параметры NFS anonuidи anongidустанавливаем идентификаторы пользователей / групп, которые сервер будет использовать для файлов, созданных анонимными пользователями. Если они не установлены, будут использоваться «nobody» и «nogroup», которые могут различаться в зависимости от версии ОС и дистрибутива. Так что

/websites 10.0.0.0/8 
    (fsid=0,no_subtree_check,rw,no_root_squash,anonuid=1001,anongid=1001)
                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^

может быть хитростью (с 1001, являющимся действительным и пригодным для использования UID / GID на вашем сервере).

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