В моей сети 4-5 серверов Ubuntu 14.04, и я хочу использовать общий /home
каталог между ними. Я установил сервер nfs и могу смонтировать каталог на различных клиентах. Однако моя проблема связана с идентификаторами пользователей.
Пример: пользователь в nfs сервер это UID 1003, но на nfs клиент этот же пользователь - UID 1002, на другом клиенте 1005 nfs.
Какие у меня есть варианты разрешения этого конфликта? Я провел довольно обширный поиск в Google в поисках вариантов и не могу найти четких ответов. Могу ли я сопоставить пользователей от одного UID к другому, или мне нужно вручную изменить UID во всех полях?
Это мой текущий /etc/exports
home 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
Лучшим решением, конечно же, является перенос ваших пользователей в единую пользовательскую базу данных, такую как LDAP, FreeIPA и т. Д. Это немного усилий сейчас, но избавит вас от многих проблем в будущем.
Но вам "повезло", потому что с NFS версии 4 вы не необходимость больше не соответствует UID. Вызовы NFSv4 между клиентом и сервером используют имена и idmapd
используется для преобразования этих имен пользователей / групп в локальные идентификаторы пользователей и групп, и наоборот.
По крайней мере, такова теория.
По умолчанию вариант безопасности хотя, sec=sys
по-прежнему использует локальный UID / GID для аутентификации операций NFS, и они по-прежнему должны соответствовать между сервером и клиентом :(
Альтернативные варианты sec=krb5
, sec=krb5i
или sec=krb5p
, как следует из их названий, все требуют, чтобы вы установили Kerberos ... И если вы идете по этому маршруту, вы также можете синхронизировать UID / GID.
Итак, да, у вас могут быть разные UID между сервером NFSv4 и клиентами с NFSv4 но это требует настройки Kerberos.