Perché il root su una macchina non può cambiare il contenuto montato su nfs da un'altra macchina?


14

Sul mio server NFS, ho definito la seguente esportazione:

#NFS exports Database
/shared -alldirs -network=192.168.1 -mask=255.255.255.0

Sul mio client NFS:

192.168.1.7:/shared /shared nfs rw 0 0

Ovviamente, come root sul server, posso fare quello che voglio. Sul client, tuttavia, il mio normale utente 'gabe' può apportare modifiche al mount di nfs (supponendo che io abbia i permessi per), ma root non può.

Come mio utente normale:

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

Come root:

# cd /shared/tmp
# touch test.txt
touch: test.txt: Permission denied

Ancora una volta, questo è tutto sul lato client NFS delle cose, e sospetto che forse abbia qualcosa a che fare con l'opzione -maproot. Questa è la prima volta che installo NFS e ho appena notato questa peculiarità. Vado a leggere un po 'ora, per vedere se riesco a capirlo, ma se qualcuno ha qualche intuizione, lo apprezzerei.

Risposte:


18

NFS è stato progettato con l'idea che gli ID utente e gruppo sarebbero gli stessi su tutti i computer della rete. Per gli utenti ordinari, funziona bene. Ma l'UID di root è sempre 0, e solo perché hai root su una casella, non significa che dovresti avere l'accesso root a tutti i computer della rete.

Pertanto, NFS tratta la radice in modo speciale. Per impostazione predefinita, root è associato nobodyall'utente, che normalmente non ha accesso in scrittura. L' -maprootopzione consente di modificare la modalità di gestione di root. BSD -maproot=rootcorrisponde no_root_squashall'opzione di Linux .


Si Certamente. Ciò ha risolto il mio problema. La pagina man che stavo leggendo era un po 'enigmatica (o la mia comprensione era) per quanto riguarda esattamente ciò che Maproot ha fatto. Grazie!
gabe.

Un altro noob qui. Mi chiedevo se potreste conoscere un modo per sapere se un'unità NFS è stata configurata per utilizzare l' -maprootopzione senza avere accesso al server NFS.
Giovanni

@Giovanni, è abbastanza diverso che dovresti fare una nuova domanda invece di aggiungere un commento.
cjm

5

Questo è un comportamento comune con le implementazioni NFS tradizionali. I mapping degli utenti NFS vengono eseguiti indipendentemente dal contesto, quindi tutti gli accessi da parte del client root devono essere mappati a un determinato utente (di solito nobodyper impostazione predefinita). Da qui questo strano comportamento, in cui la radice del client non può accedere direttamente ai file, ma può su gabeaccedervi.

(Le versioni "recenti" di NFS, ovvero NFSv4 e forse NFSv3, consentono un comportamento più sicuro se supportate da entrambi i lati, ma non conosco i dettagli.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.