1

У нас проблема при использовании NFS. Мы не можем записать в каталог на клиентском компьютере NFS, если этот каталог был создан на NFS-сервере. Причина, по-видимому, заключается в разрешении файла / каталога и отображении пользователя.

Наша установка:

У нас есть 2 узла EC2 - Ubuntu 16.04.2 LTS

NFS-сервер установлен на одной машине:

ubuntu@master:~$ less /etc/exports
/home/ubuntu/data *(rw,no_subtree_check,sync,insecure)

Тот же каталог установлен на другой машине:

sudo mkdir /home/ubuntu/data
sudo mount -t nfs masterIp:/home/ubuntu/data /home/ubuntu/data

Проблема у нас есть:

Когда мы создаем каталог в NFS в мастере, он создается так:

# sudo mkdir /home/ubuntu/data/Test
# sudo ls -all /home/ubuntu/data
drwxr-xr-x  2 root  root       4096 Jul  5 07:19 Test

Мастер не имеет проблем с доступом к этому каталогу, создавая файл внутри eetc. Но когда мы пытаемся создать файл из подчиненного узла внутри Test dir, мы получаем ошибку «Отказано в доступе».

Когда мы создаем каталог с клиентской машины NFS, это выглядит так:

# sudo mkdir /home/ubuntu/data/Test2
# sudo ls -all /home/ubuntu/data
drwxr-xr-x  2 root  root       4096 Jul  5 07:19 Test
drwxr-xr-x  2 nobody nogroup   4096 Jul  5 07:21 Test2

Таким образом, кажется, что пользователь root NFS-клиента сопоставляется с nobody @ nogroup при записи в каталоги NFS и, следовательно, не может записывать в каталоги, созданные пользователем root на NFS-сервере. Нам необходимо сопоставить корневого пользователя NFS-клиники с корневым пользователем NFS-сервера, чтобы они оба могли свободно работать с каталогами независимо от того, где они были созданы.

1 ответ1

3

Используйте параметр no_root_squash в вашей записи /etc/exports . Со страницы руководства по exports:

Отображение идентификатора пользователя

nfsd основывает свой контроль доступа к файлам на сервере с помощью uid и gid, предоставленных в каждом запросе NFS RPC. Обычное поведение, которое пользователь ожидает, заключается в том, что он может получить доступ к своим файлам на сервере так же, как и в обычной файловой системе. Для этого необходимо, чтобы одинаковые идентификаторы и идентификаторы использовались на клиенте и на сервере. Это не всегда верно и не всегда желательно.

Очень часто нежелательно, чтобы пользователь root на клиентском компьютере также рассматривался как root при доступе к файлам на сервере NFS. Для этого uid 0 обычно сопоставляется с другим идентификатором: так называемый анонимный или none uid. Этот режим работы (называемый «корень сквоша») является режимом по умолчанию и может быть отключен с помощью no_root_squash .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .