2012-01-04 10 views
6

OK, sono seriamente confuso su questa roba, quindi le risposte molto descrittive sarebbero apprezzate, specialmente se rendono questa roba di montaggio meno magica e più prevedibile.Monte di rete NFS: imposta il proprietario su un account specifico

Sto provando a montare il mio NAS Drobo-FS con nfs per ottenere prestazioni migliori rispetto a cifs.

Il drobo esegue una distribuzione linux ridotta.

All'interno/etc/fstab sulla macchina client (Ubuntu con IP: 192.168.1.150)

# Mount Drobo 
192.168.1.100:/mnt/DroboFS/Shares/public /media/drobonfs nfs rw,soft,proto=tcp,users 0 0 

ho unfsd installato sul Drobo e l'accesso via SSH. Questo è il file esportazioni sulla macchina server (Drobo-FS con IP 192.168.1.100):

# Allow access for client machine 
/mnt/DroboFS/Shares 192.168.1.150(rw,no_root_squash) 

montaggio funziona bene, tranne che i file montati sono tutti di proprietà di root con la maggior parte dei permessi dei file impostate su 744 Le autorizzazioni di file mostrate nella montatura sul client corrispondono alle autorizzazioni effettive sul server. Per esempio:

client$ sudo chmod 123 /media/drobonfs/somefile 
client$ ls -l /media/drobonfs/somefile 
---x-w--wx 1 root root 0 2012-01-04 14:15 /media/drobonfs/somefile 

drobo$ ls -l /mnt/DroboFS/Shares/public/somefile 
---x-w--wx 1 root  root   0 Jan 4 14:15 /mnt/DroboFS/Shares/public/somefile 

scrittura sudo davanti a ogni comando è un freno e voglio capire cosa sta succedendo, quindi cosa posso fare per montarlo sulla macchina client con il proprietario/gruppo insieme al mio account invece di root?

risposta

1

sembra che questo dovrebbe funzionare nelle esportazioni sul Drobo:

/mnt/DroboFS/Azioni 192.168.1.150 (rw, all_squash, anonuid = NNN)

dove NNN è l'id utente numerico sul cliente.

+0

Purtroppo no, questo non ha funzionato. E 'ancora montato, ma il proprietario/gruppo erano ancora impostati per il root. – Matthew

0

Change /etc/exports a:

/mnt/DroboFS/Shares 192.168.1.150(rw,insecure) 

e poi, sul server NFS, eseguire:

$ sudo exportfs -a 

Ora, quando si monta la directory come utente non root su il client NFS che monterà con il proprietario e il gruppo appropriati.

+1

Perché l'opzione "insecure" può essere d'aiuto qui ...? –

4

Quando una condivisione viene montata, l'ID utente (UID) del sistema host viene mappato sull'ID utente (UID) del client.

Sul client l'utente mappato (basato sull'ID utente) diventerà il proprietario della condivisione montata.

Il problema è causato dal fatto che l'host utilizza un altro UID, quindi il client.

È possibile risolvere questo definendo un file /etc/nfs.map:

/etc/nfs.map

Questo sarà simile:

# remote local gid 500 1000 # drobo client uid 500 2003 # drobo client

Così quando si utilizza NFS è necessario fare certo c'è una corrispondenza UID/GID tra gli utenti su host e client. Si prega di leggere il seguente articolo anche: http://www.kernelcrash.com/blog/nfs-uidgid-mapping/2007/09/10/

Un altro ottimo modo per risolvere questo problema sta esaminando le UID di sia su sistema host e client, cercando su questo file /etc/passwd su entrambi i sistemi.

o digitando:

id tom 

modificare l'uid con:

usermod -u 10000 tom 

Buona fortuna!

+0

map_static che è per l'impostazione nfs.map non è riconosciuto su centos 7 x86_64 con nfs-server installato per impostazione predefinita. 'Parola chiave sconosciuta" map_static =/etc/nfs.map "' –

+0

Cambiare UID/GID per consentire a server e client di utilizzare lo stesso numero UID/GID per me. [Linux-spogliatoi uids-e-gids-per-utente] (https://muffinresearch.co.uk/linux-changing-uids-and-gids-for-user/) –