Ich mounte einen Testserver in ein gemeinsam genutztes Dateisystem bei der Arbeit. Es ist ein CIFS-Mount, also schaue ich mir diese Referenzseite an:https://linux.die.net/man/8/mount.cifs
Ich möchte versuchen, so zu mounten, dass ich so wenig wie möglich weiß, um zu verhindern, dass Leute das gemeinsam genutzte Dateisystem von einem Testserver aus manipulieren. In den Dokumenten sehe ich also:
uid=arg legt die UID fest, die alle Dateien oder Verzeichnisse auf dem gemounteten Dateisystem besitzt, wenn der Server keine Eigentümerinformationen bereitstellt. Sie kann entweder als Benutzername oder als numerische UID angegeben werden. Wenn nicht angegeben, ist die Standardeinstellung UID 0. Das mount.cifs-Hilfsprogramm muss Version 1.10 oder höher aufweisen, um die Angabe der UID in nicht numerischer Form zu unterstützen. Weitere Informationen finden Sie im Abschnitt zu DATEI- UND VERZEICHNISBESITZ UND BERECHTIGUNGEN weiter unten.
Klingt gut. Aber hier ist meine Frage:
- Wie überprüfe ich, ob der Server Eigentümerinformationen bereitstellt und wenn ja, wie finde ich heraus, um welche Eigentümer es sich handelt?
Bonus-Frage:
- Welchen Sinn hat es, Berechtigungen anzubieten, wenn man sie einfach überschreiben kann
file_mode=0777,dir_mode=0777
?
Antwort1
Sie betrachten CIFS, nicht NFS. Ich bin noch nie auf eine Methode gestoßen, mit der man mit Linux-Tools Eigentümerinformationen aus einer Windows-CIFS-Freigabe extrahieren kann (wenn jemand weiß, wie das geht – beweisen Sie mir das Gegenteil!). So funktioniert es:
- Auf dem Server bestimmen die von Ihnen angegebenen Anmeldeinformationen Ihren Zugriff. Sie können einen schreibgeschützten Zugriff nicht mit „überstimmen“.
file_mode=0777
In einem solchen Fall würde Ihnen beim Versuch, eine Datei zu schreiben, der Zugriff verweigert werden. - Da eine standardmäßige CIFS-Freigabe keine Eigentümerinformationen exportiert, bieten die Optionen
uid
,gid
,umask
,file_mode
,dir_mode
eine Möglichkeit, eine Linux-Dateisicherheit über die gemountete Freigabe zu legen. Auf diese Weise können Sie festlegen, dass nur ein bestimmter lokaler Linux-Benutzer/eine bestimmte lokale Linux-Gruppe von Ihrer gemounteten Freigabe lesen/auf sie schreiben kann. Wenn Sie diese Optionen während der Bereitstellung nicht angeben, werden Standardwerte verwendet (höchstwahrscheinlichuid=0, gid=0, umask=0
für alle Verzeichnisse und Dateien in dieser Freigabe). - Mit Blick auf die offizielleDokumentationkann man lesen, dass es „Unix-Erweiterungen für CIFS“ gibt, die den Export von UID-/GID-Eigentümerinformationen ermöglichen. Ich weiß aber nicht, ob es eine Möglichkeit gibt, festzustellen, ob der Server diese Erweiterungen unterstützt.