Назад | Перейти на главную страницу

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

У меня есть две идентичные 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
...

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

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

/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)

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

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

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

    [Общее]

    Домен = localdomain

    [Перевод]

    Метод = nsswitch

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

  3. запустить службу idmapd

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

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

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

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

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

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

Мы используем параметры 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 на вашем сервере).