# Portage per NFS4: no_root_squash funktioniert nicht

## sprittwicht

Hallo!

Ich habe ein Problem mit meinem NFS4-Setup. So wie ich's verstanden habe benötigt man ja ein "Root-Verzeichnis" auf dem Server, welches alle zu exportierenden Verzeichnisse enthält. Folgendes funktionierte bisher ganz gut (/etc/exports):

```

/nfs                                    192.168.0.0/24(rw,all_squash,no_subtree_check,fsid=0)

/nfs/share                              192.168.0.0/24(rw,all_squash,no_subtree_check)

/nfs/share2                             192.168.0.0/24(rw,all_squash,no_subtree_check)

```

Mit fsid=0 definiere ich /nfs als Root-Ordner für weitere Exporte, unter share und share2 sind dann Dateisysteme von unterschiedlichen Platten gemountet.

Läuft wie geplant, alle Dateien werden unter User/Gruppe nobody/nobody abgelegt.

Nun wollte ich noch den Portage-Tree aufs NFS legen. Also in /etc/make.conf das Verzeichnis auf "/nfs/portage" geändert (liegt im gleichen Dateisystem wie "/", also kein eigenes wie bei share und share2), gesynct und /etc/exports um folgende Zeile ergänzt:

```

/nfs/portage                            192.168.0.0/24(rw,no_root_squash,no_subtree_check)

```

Also identisch mit den oberen Freigaben, aber no_root_squash statt all_squash, da der Client mit Root-Rechten auf den Portage-Tree zugreifen können soll, und nicht als "nobody:nobody".

Klappt aber nicht, der Client hat unter /nfs/portage keine Root-Rechte.

==> Warum das? <==

Auf dem Client wird nur /nfs gemountet, damit sind alle exportierten Unterordner inklusive /nfs/portage sichtbar, aber bei letzterem wird halt anscheinend no_root_squash komplett ignoriert.

Kann mich jemand vom Holzweg runterlocken? Die durchgehend widersprüchliche, bunt NFS3/NFS4-gemischte und generell grausame Dokumentation im Internet, insbesondere auch auf den diversen Gentoo-Wiki-Seiten hat mich irgendwie nicht weitergebracht. :-/

----------

## Max Steel

Ein richtiges NFS-root-share brauchst du meines Wissens nach nicht.

Wenn du /nfs/ mountest wird auch nur die Einstellung für /nfs übernommen (was darin enthalten ist, ist erstmal egal)

um /nfs/portage mit no_root_squash zu mounten brauchst du meines Wissens nach einen konkreten Mount von server:/nfs/portage nach /nfs/portage damit er auch die dort eingestellten Einstellungen von /nfs/portage übernimmt.

fsid=0 habe ich bisher nur im Zusammenhang mit tmpfs mounts benötigt...

Hier bei uns funktioniert bspw. auch folgende Konfiguration:

```
/pub/home/user1                             192.168.1.0/24(rw,root_squash,no_subtree_check)

/pub/home/user2                           192.168.1.0/24(rw,root_squash,no_subtree_check)

/pub/musikcds                           192.168.1.0/24(rw,root_squash,no_subtree_check)

/usr/portage/distfiles                           192.168.1.0/24(rw,no_root_squash,no_subtree_check)
```

PS: Die Konfig ist gerade aus meinem Kopf heraus abgetippt. Ich habe hier in der Firma keinen direkten Zugang zu meinem Home-Server. Fehler sind möglich.

PPS: Was mich wundert ist, mittels no_subtree_check sagt du NFS eigentlich das er die unter /nfs gemounteten Filesysteme (auch --bind) nicht mitexportierst. Entweder mountest du doch noch die 2 share, oder nfs exportiert den unter /nfs gemounteten share mit, wenn eine Konfiguration für diesen existiert, nur ist zu klären ob mit oder ohne eigener Konfiguration...

----------

## sprittwicht

Erstmal danke und sorry für die späte Antwort!

 *Max Steel wrote:*   

> Ein richtiges NFS-root-share brauchst du meines Wissens nach nicht.

 

Hm, Tatsache. Wenn ich auf das "root" verzichte kann ich auch /usr/portage exportieren.

Dann erschließt sich mir die Doku zu /etc/exports allerdings nicht:

 *Quote:*   

> For NFSv4, there is a distinguished filesystem which is the root of all exported filesystem.  This is specified with  fsid=root or fsid=0 both of which mean exactly the same thing.

 

 *Max Steel wrote:*   

> Wenn du /nfs/ mountest wird auch nur die Einstellung für /nfs übernommen (was darin enthalten ist, ist erstmal egal)
> 
> um /nfs/portage mit no_root_squash zu mounten brauchst du meines Wissens nach einen konkreten Mount von server:/nfs/portage nach /nfs/portage damit er auch die dort eingestellten Einstellungen von /nfs/portage übernimmt.

 

Das hat leider nicht geholfen. Beim expliziten Mounten des Unterverzeichnisses bleiben die Berechtigungen bei denen des Root. :-/

 *Max Steel wrote:*   

> PPS: Was mich wundert ist, mittels no_subtree_check sagt du NFS eigentlich das er die unter /nfs gemounteten Filesysteme (auch --bind) nicht mitexportierst.

 

Hm, also bei mir steht in der Manpage, dass no_subtree_check dafür sorgt dass bei in den Export eingehängten Teilpfaden eines Dateisystems (in /nfs/portage hängt ja kein komplettes Dateisystem, sondern nur ein Teilbaum) bestimmte Sicherheitschecks abgeschaltet werden, die verhindern sollen dass man beim Zugriff vom Client aus dem exportierten Unterverzeichnis auf den Rest des Dateisystems ausbrechen kann.

NFS hasst mich.  :Smile: 

----------

