Na moim serwerze NFS mam zdefiniowany następujący eksport:
#NFS exports Database
/shared -alldirs -network=192.168.1 -mask=255.255.255.0
Na moim kliencie NFS:
192.168.1.7:/shared /shared nfs rw 0 0
Oczywiście jako root na serwerze mogę robić co tylko zechcę. Jednak na kliencie mój zwykły użytkownik „gabe” może dokonywać zmian w montażu nfs (zakładając, że mam uprawnienia), ale root nie może.
Jako mój zwykły użytkownik:
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
Jako root:
# cd /shared/tmp
# touch test.txt
touch: test.txt: Permission denied
Ponownie, wszystko to jest po stronie klienta NFS i podejrzewam, że może ma to coś wspólnego z opcją -maproot. Po raz pierwszy konfiguruję NFS i właśnie zauważyłem tę osobliwość. Zrobię teraz lekturę, aby sprawdzić, czy uda mi się to rozgryźć, ale jeśli ktokolwiek ma wgląd, doceniłbym to.
źródło
-maproot
opcji bez dostępu do serwera NFS.To typowe zachowanie w przypadku tradycyjnych implementacji NFS. Odwzorowania użytkowników NFS są wykonywane niezależnie od kontekstu, więc wszystkie dostępy użytkownika root muszą być mapowane na konkretnego użytkownika (zazwyczaj
nobody
domyślnie). Stąd to dziwne zachowanie, w którym klient root nie może uzyskać dostępu do twoich plików bezpośrednio, ale możesu gabe
uzyskać do nich dostęp.(„Najnowsze” wersje NFS, tj. NFSv4 i być może NFSv3, pozwalają na bardziej rozsądne zachowanie, jeśli są obsługiwane po obu stronach, ale nie znam szczegółów.)
źródło