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

Клиент NFS не игнорирует UID на карте NFS

У меня шесть машин, один сервер NFS и пять клиентов. Три клиента (под управлением Ubuntu 14.04) работают нормально. Два других, работающих под управлением 12.04, имеют ошибки разрешений.

На подключенной клиентской машине ls -l /home/ возвращает:

drwxr-xr-x 22 testuser     testuser     12288 Oct  9 18:03 testuser

Это ожидаемая настройка разрешений. testuser - это пользователь, которому требуется разрешение на доступ к этой папке.

Но при входе в testuser, когда я touch /home/testuser/test.txt Я получаю такую ​​ошибку:

touch: cannot touch `/home/testuser/test.txt': Permission denied

Теперь числовые идентификаторы НЕ соответствуют строкам идентификаторов, но Мне сказали, что это не так.

Настройки клиента:

cat /sys/module/nfs/parameters/nfs4_disable_idmapping
N 

Приведенный выше параметр позволяет NFS сопоставлять разрешения пользователей с использованием строк, а не числовых UID и GID.

cat /etc/idmapd.conf
[General]

Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

Настройки сервера:

cat /etc/exports

/raid/nfs/home        server1(rw,sync,no_root_squash,no_subtree_check)
/raid/nfs/home        server2(rw,sync,no_root_squash,no_subtree_check)

Есть ли ошибка или дополнительные действия, которые мне нужно предпринять, чтобы машины 12.04 работали правильно? Или я должен просто укусить пулю и обновиться, или просто изменить все UID, чтобы они соответствовали серверу?

проблема в том, что idmapd задействован только тогда, когда вы выполняете GETATTR / SETATTR (stat, chown, setacl) или используется kerberos (для отображения принципала на идентификатор). Но когда клиент nfs отправляет запрос CREATE с auth = sys, тогда uid и gid берутся из сообщения RPC. Таким образом, вам нужно, чтобы uid и gid совпадали на сервере и клиенте, чтобы решить проблему с разрешениями.