NFS и all_squash путаница

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

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

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

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

anonuid и anongid: эти опции явно устанавливают uid и gid анонимной учетной записи. Эта опция в первую очередь полезна для клиентов ПК /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 и GID? Если это не так, можно ли этого достичь?

0 ответов

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

Другие вопросы по тегам