Я пытаюсь смонтировать сетевой диск на почти новой установке Сервера Ubuntu 18.04, и я получаю некоторое озадачивающее поведение.
Я монтирую диск как корень и перечисляю полномочия:
# mount xxx.xxx.xxx.xxx:/my/share /mnt/nfs
# ls /mnt
drwxrwxr-x 1 user user nfs
# cd /mnt/nfs
Взгляды, хорошие до сих пор! (Вы будете видеть, почему я делаю это cd
за только секунду...)
Я вхожу в систему как обычный пользователь, user
, и попытайтесь пойти о моем бизнесе:
$ ls /mnt
drwxrwxr-x 1 user user nfs
$ cd /mnt/nfs
cd: test: Permission denied
$ ls /mnt
d--------- 1 user user nfs
Uhh..., что произошло с полномочиями? Процесс к счастью обратим... Ну, только если root
попытки это...
# ls /mnt
d--------- 1 user user nfs
# cd /mnt/nfs
# pwd
/mnt/nfs
# ls /mnt
drwxrwxr-x 1 user user nfs
Какие-либо идеи, что продолжается, и как я могу пойти о фиксации его? Я в полной растерянности.
Стоит отметить, что это - вторая машина, что это произошло со мной с Сервером Ubuntu 18.04, оба почти из поля.
примечание: Вывод команды моделирован, но взят почти непосредственно с сервера. (т.е.: количество жестких ссылок ls
отчеты являются, вероятно, не правильными, и я опустил .
и ..
каталоги, но полномочия, владельцы, и т.д. корректны),
Это - функция NFS
, названный "Корневое сплющивание". См. http://www.troubleshooters.com/linux/nfs.htm раздел"User ID Mapping Options
".
Опция "Root squashing" была добавлена для предотвращения root
в других системах от доступа к файлам как root
на сервере NFS. Протокол NFS не имеет никакой аутентификации и вслепую принял бы пакет NFS, говоря, что "Я [UID=root
,GID=root
] запишите эти данные в /etc/passwd
", без "Корневого сплющивания". С "Корневым сплющиванием", пакет становится, "Я [UID=nobody
, GID=nobody
] запишите эти данные в /etc/passwd
", намного более безопасная команда (который перестанет работать).