NFS-Partition als schreibgeschützt bereitgestellt

7

(Haftungsausschluss: Ich habe " NFS-Freigabe ist schreibgeschützt " gelesen und denke, es ist nicht das gleiche Problem.)

Ich habe gerade NFS auf meiner Himbeere (Raspbian) eingerichtet und versuche, über OSX darauf zuzugreifen. So weit so gut, ich kann die Partition mounten, aber leider ist sie schreibgeschützt . Noch ein paar Infos:

Client (OSX)

➜  ~ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
192.168.1.102:/export/data on /media (nfs)

➜  ~  ls -ld /media    
drwxr-xr-x  3 root  wheel  4096 Mar  8 15:57 /media

Server (Raspbian)

pi@raspberrypi ~ $ cat /etc/exports 

/export       192.168.0.0/16(rw,fsid=0,insecure,no_subtree_check,async)
/export/data  192.168.0.0/16(rw,nohide,insecure,no_subtree_check,async)

pi@raspberrypi ~ $ cat /etc/idmapd.conf 
[General]

Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
# Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

Wie gesagt, das Problem tritt auf, wenn versucht wird, eine Datei im bereitgestellten Verzeichnis zu erstellen:

➜  /media  touch foo
touch: foo: Permission denied
➜  /media  sudo touch foo
Password:
touch: foo: Permission denied

Beachten Sie, dass ich eine Datei vom Server erstellen kann . Das Problem muss im NFS-Mount liegen.

(Übrigens habe ich diese Anleitung befolgt , um das Ganze einzurichten)

Zusätzliche Informationen (bearbeiten):

So mounten Sie die Partition auf osx:

sudo mount -t nfs -o rw 192.168.1.102:/export/data /media

Pablo Fernandez
quelle
Wie montierst du? Können Sie uns die relevante /etc/fstab(oder OSX-äquivalente) Zeile zeigen?
Terdon
In der Regel empfiehlt es sich, die NFS-Freigabe zuvor lokal auf dem System selbst in einem anderen Verzeichnis bereitzustellen, um zu bestätigen, dass sie funktioniert.
slm
@terdon Bearbeitet, um zu zeigen, wie ich mounte, es gibt noch keine / etc / fstab (osx verwendet standardmäßig keine und ich möchte sicherstellen, dass die Montage richtig ist, bevor ich eine hinzufüge)
Pablo Fernandez
@slm wie wäre das? Montage auch als nfsPartition?. mountIch habe gerade versucht, es lokal mit demselben Befehl wie für osx zu mounten (siehe Bearbeiten), und es ist auch lokal noch schreibgeschützt.
Pablo Fernandez
mount -o nfs sever:/export /mnt.
slm

Antworten:

3

Dies scheint mir eher ein Berechtigungsproblem zu sein als ein schreibgeschütztes Dateisystem.

Können Sie das Verzeichnis / export / data vom pi aus vorübergehend für die Welt beschreibbar machen? Wenn ja, können Sie jetzt vom Client aus schreiben? Wer ist der Eigentümer, wenn Sie auf diese Weise eine Datei erstellen?

Ohne no_root_squash ist Ihr Root-Benutzer niemandem zugeordnet. Andernfalls müssen Sie den Benutzer vom Client einem Benutzer auf dem Pi zuordnen.

BowlOfRed
quelle
Ich bin auf dieses Problem gestoßen und konnte es umgehen, indem ich die all_squashOption verwendete, alle Berechtigungen für das Freigabeverzeichnis öffnete und den Eigentümer der Freigabe auf niemanden setzte.
TD Smith
0

Ich habe dieses Problem mit CentOS 6.5 gesehen. Ich weiß nicht, ob Raspbian NetworkManager verwendet, aber wenn ja, kann dies Ihr Problem sein. Es scheint, dass die neueste Version von Network Manager rpcbind im Weg steht und nfs in einigen Situationen nicht authentifizieren kann. Sie können dies schnell herausfinden, indem Sie einen dpkg --get-selections | grep -i NetworkManagerauf Ihrem Raspbian machen. Unter CentOS können Sie es entfernen, ohne dass dies Auswirkungen auf Ihr Netzwerk-Setup hat. Hoffentlich könnte das helfen.

user62700
quelle
Ich kann nicht einmal einen Lese- / Schreib-NFS-Mount auf demselben Raspbian erstellen. Wie ist der Netzwerkmanager hier involviert?
Pablo Fernandez
nfs verwendet einen RPC-Dienst, um einen Benutzer zu authentifizieren. Wenn rpcbind den Dienst nicht an den Port binden kann, kann nfs den Benutzer nicht authentifizieren. Wenn der Benutzer nicht authentifiziert ist, ist nfs standardmäßig schreibgeschützt.
user62700
0

Dies hat etwas mit NFSv4 zu tun. Wenn Sie verwenden -o vers=3, wird es glücklich. Ich bin mir sicher, dass es eine NFSv4-Option gibt, mit der root Ihre NFS-Freigaben zerstören kann, aber ich habe aufgehört, mich darum zu kümmern, dass es überhaupt funktioniert.

# mount -o soft,rw server:/exports/share /mnt/test
# touch /mnt/test/foo
touch: cannot touch '/mnt/test/foo': Permission denied
# umount /mnt/test
# mount -o soft,rw,vers=3 server:/exports/share /mnt/test
# touch /mnt/test/foo
# ls /mnt/test/foo
/mnt/test/foo
# rm /mnt/test/foo
# umount /mnt/test
Ben Stern
quelle
0

Ich sehe, dass dein Pseudoroot ist /export:

/ export 192.168.0.0/16(rw,fsid=0,insecure,no_subtree_check,async)

und Ihre Unterfreigabe ist /mediaunter /export:

/ export / data 192.168.0.0/16(rw,nohide,insecure,no_subtree_check,async)

Anstatt zu montieren und den absoluten Pfad anzugeben:

sudo mount -t nfs -o rw 192.168.1.102:/export/data / media

Haben Sie versucht, den Pfad relativ zum Pseudoroot anzugeben?

sudo mount -t nfs -o rw 192.168.1.102:/data /media

?

So funktioniert es mit meiner Installation (CentOS 7 NFSv4-Server, Fedora-Clients).

Francesco
quelle