Заблуждения NFS и all_squash

Для некоторой задачи временного переноса данных мне нужно настроить сервер NFS. UID на обеих машинах не совпадают, поэтому мне как-то нужно избегать проблем с разрешениями.

К счастью, я подумал, есть опция all_squash . Он говорит:

all_squash: Сопоставьте все uid и gid анонимному пользователю. Полезно для экспортируемых через NFS общедоступных каталогов FTP, каталогов очереди новостей и т. Д. Противоположный параметр - no_all_squash, который является настройкой по умолчанию.

Для сопоставления с желаемым пользователем и группой я дополнительно указал anonuid = 12345 и anongid = 15101982 :

anonuid и anongid: Эти параметры явно устанавливают uid и gid анонимной учетной записи. Эта опция в первую очередь полезна для клиентов PC / NFS, где вы можете захотеть, чтобы все запросы отправлялись от одного пользователя. В качестве примера рассмотрим запись экспорта для / home / joe в приведенном ниже разделе примеров, которая сопоставляет все запросы с uid 150 (который предположительно принадлежит пользователю joe).

Создайте файл на клиенте , подключенном к общему ресурсу NFS, и, как и ожидалось, я вижу следующее поведение (uid / gid были изменены на 12345 ):

$ touch test && ls -l test
-rw-rw-r-- 1 12345 12345 0 Aug 25 18:10 test

Однако , файлы, которые уже существуют на общем ресурсе, по-прежнему имеют свои исходные uid и gid:

$ ls -l existing-file
-rw-rw-r-- 1 98765 98765 0 Aug 25 18:11 existing-file

Я что-то неправильно понимаю? Я предполагал, что all_squash просто раздавит все файлы uid и gids? Если это не так, можно ли этого достичь?

2
задан 25 August 2017 в 19:16
1 ответ

Протокол NFS использует учетные данные на основе RPC при создании нового файла. Установив all_squash+anonuid, вы измените учетные данные, связанные с этим конкретным клиентом. IOW, это влияет только на проверку разрешений для запросов пользователей и права собственности на вновь созданные файлы и каталоги. Владение существующими файлами не затрагивается.

1
ответ дан 9 July 2020 в 13:29

Теги

Похожие вопросы