У меня проблема с отображением файлов с использованием монтирования NFSv4 между
Сервер: Ubuntu 20.04, 192.168.1.1
Клиент: Ubuntu 18.04, 192.168.1.2
На сервере у меня есть папка и файл
/домашний/сервер/файлы/myfile.pdf
(обратите внимание, что «сервер» используется в качестве имени учетной записи пользователя). Вот полная цепочка владельцев и разрешений исходного файла:
drwxr-xr-x корень: корень /
drwxr-xr-x корень: корень /дом/
drwxr-xr-x сервер: сервер /домашний/сервер/
drwxrwxr-x сервер: nfsgroup /home/server/files/
-rwxrwxrwx сервер: nfsgroup /home/server/files/myfile.pdf
Здесь вы можете увидеть пример утилиты «пользователь»: «группа», которую я создал:
нфсусер uid = 127
Гид нфсгрупп=134
И «nfsuser», и «server» входят в группу «nfsgroup».
На сервере у меня есть /файлы/
каталог, смонтированный привязкой к /СРВ/nfs4/файлы/
в /etc/fstab
, с записью
/home/server/files /srv/nfs4/files нет привязки 0 0
Это успешно, и я ясно вижу /srv/nfs4/files/myfile.pdf
файл как
-rwxrwxrwx сервер:nfsgroup/srv/nfs4/files/myfile.pdf
Вот полная цепочка владельцев и разрешений смонтированного и обслуживаемого файла:
drwxr-xr-x корень: корень /
drwxr-xr-x корень: root /srv/
drwxrwxr-x сервер: nfsgroup /srv/nfs4/
сервер drwxrwxr-x: nfsgroup /srv/nfs4/files/
-rwxrwxrwx сервер:nfsgroup/srv/nfs4/files/myfile.pdf
Теперь я хочу экспортировать весь /срв/нфс4/
каталог, который содержит смонтированный привязкой файлы/
, клиенту. У меня есть эта запись на сервере /etc/экспорт
:
/srv/nfs4 192.168.1.2(rw,sync,fsid=0,root_squash,all_squash,anonuid=127,anongid=134,no_subtree_check)
Отметим, в частности, что all_squash, anongid = 127, anongid = 134
группа настроек приводит к тому, что клиентский пользователь «client» распознается как «nfsuser» в «nfsgroup» в отношении разрешений.
После того, как я экспортирую это, используя $ sudo exportfs -ra
, я монтирую его в каталог корневого уровня /nsffiles/
на клиенте с помощью команды $ sudo mount -t nfs 192.168.1.1:/srv/nfs4 /nsffiles
.
В результате я может видеть экспортируется файлы/
каталог внутри /nsffiles/
на клиенте. Однако я не могу видеть его содержимое:
$ ls -Alhd /nsffiles/
drwxrwxr-x 8 клиент 134 4.0K 14 нояб. 20:37 /nsffiles/
$ ls -Alhd /nsffiles/файлы/
drwxr-xr-x 2 root root 4.0K 14 нояб. 20:36 /nsffiles/files/
$ ls -Alh /nsffiles/файлы/
всего 0
Тот факт, что клиент NFS может видеть файлы/
указывает, что в моих службах NFS или локальной сети нет ничего принципиально неправильного. Там нет проблем с брандмауэром, и мне не нужно устанавливать какие-либо дополнительные пакеты. Кроме того, у меня раньше монтирование NFS отлично работало с немного другой структурой папок (файлы/
был в каталоге за пределами дома, например), поэтому я знаю, что в этом отношении основы в порядке.
Я предполагаю, что наиболее вероятной причиной того, почему это не будет работать сейчас, является тонкое изменение прав собственности/разрешений между предыдущей настройкой и текущей. В частности, смонтированный каталог
на стороне сервера: `/srv/nfs4/` drwxrwxr-x server:nfsgroup
клиентская сторона: `/nsffiles/` drwxrwxr-x клиент: 134
Содержащийся каталог
на стороне сервера: `/srv/nfs4/files/` drwxrwxr-x server:nfsgroup
клиентская сторона: `/nsffiles/files/` drwxr-xr-x root:root
То есть для смонтированного каталога разрешения преобразуются как сервер:nfsgroup -> клиент:134
, что и ожидается. Однако разрешения для содержащегося каталога преобразуются как сервер: nfsgroup -> корень: корень
. Почему корень: корень
и нет клиент:134
?
Эта ошибка сервера вопрос звучит похоже, но это касается Windows, и я не могу сказать, что применим единственный ответ.
Это Unix.SE вопрос касается прав доступа к файлам NFS для установки Windows/Linux; вся информация, которую я могу почерпнуть из него, это вещи, которые я уже знаю и думаю, что позаботился о них.
Пожалуйста, отвечайте, только если вы знаете, о чем говорите. Если вы не можете устоять перед публикацией дикой догадки, пожалуйста, идентифицируйте ее как дикую догадку. Или, вы знаете, предоставьте достаточно информации, чтобы ваш читатель мог заметить разницу.