На моем сервере NFS определен следующий экспорт:
#NFS exports Database
/shared -alldirs -network=192.168.1 -mask=255.255.255.0
На моем клиенте NFS:
192.168.1.7:/shared /shared nfs rw 0 0
Очевидно, что как root на сервере я могу делать все, что захочу. На клиенте мой обычный пользователь 'gabe' может вносить изменения в монтирование nfs (при условии, что у меня есть разрешения), но root не может.
Как мой постоянный пользователь:
gabe@client$ cd /shared
gabe@client$ ls -l
total 8
drwxrwxrwx 4 gabe wheel 512 Mar 20 19:20 tmp
gabe@client$ cd tmp
gabe@client$ touch test.txt
gabe@client$ rm test.txt
Как корень:
# cd /shared/tmp
# touch test.txt
touch: test.txt: Permission denied
Опять же, это все на стороне клиента NFS , и я подозреваю, что, возможно, это как-то связано с опцией -maproot. Это первый раз, когда я настраиваю NFS, и я только что заметил эту особенность. Сейчас я собираюсь немного почитать, чтобы узнать, смогу ли я это выяснить, но если у кого-то есть понимание, я был бы признателен.
источник
-maproot
опции, не имея доступа к серверу NFS.Это обычное поведение с традиционными реализациями NFS. Отображения пользователей NFS выполняются независимо от контекста, поэтому все обращения корневого клиента должны быть сопоставлены конкретному пользователю (обычно
nobody
по умолчанию). Отсюда и странное поведение, когда корень клиента не может получить доступ к вашим файлам напрямую, но можетsu gabe
получить к ним доступ.(«Последние» версии NFS, то есть NFSv4 и, возможно, NFSv3, разрешают более разумное поведение, если поддерживаются обеими сторонами, но я не знаю деталей.)
источник