Я экспортировал общий ресурс NFS с сервера и смонтировал его с клиента. Когда я пытался получить к нему доступ, я получил отказ в разрешении, задаваясь вопросом, почему. Сделал экспорт доступным для всех, создал там файл, и оказалось, что клиент обращается к нему под другим пользователем, чем я ожидал.
Мой экспорт:
/export fd48:2b50:6a95:a6db::4(ro,no_subtree_check,fsid=0,all_squash)
/export/backup-fs fd48:2b50:6a95:a6db::4(rw,no_subtree_check,root_squash,anonuid=34,anongid=34)
(Примечание: общедоступные IP-адреса изменены на частные по соображениям конфиденциальности.)
Здесь намерение состоит в том, чтобы сделать root_squash
, НО пользователь root клиента должен быть сжат до локального UID 34 (резервный пользователь); это цель анонуид
, анангид
. Таким образом, если экспорт принадлежит UID/GID 34, корневой пользователь клиента должен рассматриваться как его владелец. Тем не менее, когда я создаю файл на общем ресурсе, он становится владельцем никто/без группы
. Почему? Между двумя системами все совпадает: обе имеют UID/GID 34 и обе названы резервный
.
Тоже пришлось поменять /экспорт
к RW
, что на самом деле не имеет для меня смысла, потому что я хочу, чтобы корень экспорта был доступен только для чтения и только для записи в подкаталоге backup-fs.
Серверная система:
Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-81-общий x86_64)
Вот так монтирование выглядит на клиенте:
my-nfs-server:/backup-fs в /var/backups/fs/тип данных nfs4 (rw, relatime, vers=4.2, rsize=65536,wsize=65536,namlen=255,hard,proto=tcp6,timeo= 600,retrans=2,sec=sys,clientaddr=fd48:2b50:6a95:a6db::4,local_lock=none,addr=fdc8:d5f9:cbbf:b206::2001)
Что меня особенно озадачивает, так это то, что у меня есть ТАКАЯ ЖЕ КОНФИГУРАЦИЯ на другом сервере NFS, и я монтирую ее С ТО ЖЕ ЖЕ клиентом, и она работает так, как предполагалось. Я не могу найти никакой разницы между двумя конфигурациями, хотя у меня более старая версия Ubuntu и соответствующая версия ядра в другой системе.