У меня есть удаленный раздел, который я смонтировал локально с помощью NFS.
'mount' дает
192.168.3.1:/mnt/storage-pools/ on /pools type nfs (rw,addr=192.168.3.1)
На сервере у меня есть экспорт:
/mnt/storage-pools *(rw,insecure,sync,no_subtree_check)
Тогда я пытаюсь
touch /pools/test1
ls -lah
-rw-r--r-- 1 65534 65534 0 Dec 13 20:56 test1
chown root.root test1
chown: changing ownership of `test1': Operation not permitted
Что мне не хватает? Выдергивала волосы.
По умолчанию root_squash
опция экспорта включена, поэтому NFS не позволяет пользователю root с клиента выполнять операции как root на сервере, вместо этого сопоставляя его с идентификатором пользователя / группы, указанным в anonuid
и anongid
параметры (по умолчанию = 65534). Это можно настроить в /etc/exports
вместе с другими вариантами экспорта.
Прочтите раздел exports(5)
по поводу "раздавливания корней":
Очень часто нежелательно, чтобы пользователь root на клиентской машине также рассматривался как root при доступе к файлам на сервере NFS. С этой целью uid 0 обычно сопоставляется с другим идентификатором: так называемым анонимным или none uid. Этот режим работы (называемый «корневое сжатие») используется по умолчанию и может быть отключен с помощью no_root_squash.
Итак, вы хотите:
/mnt/storage-pools *(rw,insecure,sync,no_subtree_check,no_root_squash)
(отредактированная опечатка)