Я пытаюсь подключиться к папке NFS на моем dev-сервере. Владельцем папки на сервере dev является darren и группа darren.
Когда я экспортирую и монтирую его на свой Mac с помощью Дисковой утилиты, он монтируется, но затем при попытке открыть папку говорит, что у меня нет разрешений. Я установил rw, sync и no_subtree_check. Пользователь на Mac с большим количеством групп.
Нужно ли иметь одну и ту же группу и пользователя для доступа к папке?
Ответы:
NFS построен поверх аутентификации RPC. В NFS версии 3 наиболее распространенным механизмом аутентификации является AUTH_UNIX. Идентификатор пользователя и идентификатор группы клиентской системы отправляются при каждом вызове RPC, а разрешения, которые имеют эти идентификаторы для файла, к которому осуществляется доступ, проверяются на сервере. Чтобы это работало, UID и GID должны быть одинаковыми на сервере и клиентах. Однако вы можете принудительно разрешить весь доступ как отдельному пользователю и группе, комбинируя параметры экспорта all_squash, anonuid и anongid. all_squash отобразит все UID и GID анонимному пользователю, а anonuid и anongid установят UID и GID анонимного пользователя. Например, если ваш UID и GID на вашем dev-сервере равны 1001, вы можете экспортировать свой домашний каталог с помощью строки вроде
/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)
Я менее знаком с NFS версии 4, но я думаю, что вы можете настроить rpc.idmapd на клиентах, чтобы изменить uid и gid, которые они отправляют на сервер.
источник
Когда вы монтируете NFS, ваши права, с которыми вы монтируете его, должны совпадать с тем, что вы имеете на сервере. Например, если у вашего пользователя есть только доступ только для чтения, монтирование его с чтением-записью приведет к тому, что вы увидите те же ошибки, которые вы упоминали в своем посте, когда вы попытаетесь действительно загрузить монтирование. К сожалению, это будет отображаться ТОЛЬКО при доступе к папке, а не при ее фактическом подключении.
Вы также хотите убедиться, что пользовательская NFS работает как на сервере, а пользователь на клиенте использует тот же UID и GID. Вы можете проверить эти значения, запустив
id darren
как сервер, так и клиент. Если значения UID и GID не совпадают, вы можете отредактировать/etc/passwd
их, но убедитесь, что понимаете, что делаете, прежде чем произвольно изменять значения!Несколько хороших источников:
Надеюсь, это поможет!
источник
Ваши UID и GID совпадают на обоих серверах? Это то, что он использует для контроля доступа, а не логин и имя группы.
источник
Для меня проблема была исправлена путем предоставления
_netdev
опции монтирования на клиенте.Т.е. добавить это в
/etc/fstab
:источник