Linux-Berechtigungen für einen Remote-Mount

Linux-Berechtigungen für einen Remote-Mount

Wenn ich mir unter Windows die Berechtigungen für einen Remote-Ordner ansehe, werden die Konten mit dem Computernamen oder der Domäne qualifiziert, also der Autorität für den Kontonamen.

Wenn ich unter Linux eine VM mit einem Mount auf einem Remote-Laufwerk habe und der Besitzer eines Ordners auf dem Mount „root“ ist, ist das dann mein Root oder der Root des Remote-Systems?

Das Ganze scheint unter Linux viel zu einfach zu sein, um zu funktionieren, sobald ein Netzwerk im Spiel ist. Ich übersehe eindeutig etwas.

Lukas

Antwort1

Dies ist leider eines der verwirrendsten Dinge beim Filesharing unter Unix. Und ich bin schlecht darin, verwirrende Dinge zu erklären.

Was dusehenIn ls -lder Ausgabe wird beispielsweise die ID des Remote-Benutzers aus der Perspektive des lokalen Systems übersetzt.

Wenn Programme wie lsdie Standardfunktionen zum Nachschlagen von Dateiinformationen verwenden, kann der Dateisystemtreiber ihnen nur numerische Benutzer-IDs, keine Textnamen bereitstellen.(Bisher nicht allzu verschieden von Windows.)Zum Übersetzen der UIDs in Namen lswird eine völlig andere Betriebssystemkomponente aufgerufen, die Namensdienstbibliotheken, die keine Kenntnis davon haben, woher die UID stammt, und daher nur Konten übersetzen können, die dem Betriebssystem bekannt sind, aber nicht zurückgehen und den Dateisystemtreiber um Hilfe bitten können.(Hier liegt der Unterschied.)

Wenn der Server beispielsweise zwei Dateien hat, von denen eine root gehört (UID 0) und die andere Luke gehört (UID 1000), lsweiß er nur, dass sie "0" und "1000" gehören, und sucht nachlokalKonten mit denselben UIDs. „0“ ist immer root, aber „1000“ kann Luke sein oder auch nicht. Wenn die UID zu einem Konto gehört, das in LDAP, NIS oder AD gespeichert ist, und wenn das Client-Betriebssystem tatsächlichkonfiguriertum in LDAP nach Benutzerkonten zu suchen, wird der richtige Benutzername angezeigt. Andernfalls könnte es tatsächlich lügen, da lokale Konto-UIDs (1000, 1001, ...) dazu neigen, verschiedenen Personen auf verschiedenen Computern zu entsprechen.

(Es gibt Möglichkeiten, wie der Dateisystemtreiber Programmen den vollständigen Benutzernamen in Form von „erweiterten Attributen“ mitteilen kann. Leider gibt es trotz verschiedener Versuche keine Standardmethode dafür, und Programme wie lsversuchen im Allgemeinen, dateisystemspezifische Tricks zu vermeiden. Noch unglücklicher ist, dass nicht alle NetzwerkdateisystemprotokolledürfenÜbertragen Sie die Benutzernamen: CIFS aka SMB kann, NFSv4 kann, die meisten anderen können nicht.)

Aber nichts davon ist wirklich wichtig,denn was dutun könnenmit der Datei wird immer dadurch bestimmt, was der Server weiß, nicht dadurch, was der Client sieht. Wenn Sie beispielsweise verwenden sshfs, meldet es sich über SSH mit Ihrem Benutzernamen (z. B. sshfs luke@fileserver) beim Server an, und der Server lässt Sie nichts tun, was Sie nicht tun dürfen. Dasselbe gilt für CIFS, AFS usw.

Antwort2

Der Besitzer ist der Root-Benutzer auf dem Remote-Rechner. Wenn Sie als Root auf dem Remote-Rechner darauf zugreifen möchten, müssen Sie es als Root auf dem Remote-Rechner mounten.

Mit anderen Worten, dies sollte funktionieren (lokaler Benutzer ja, Remote-Benutzer root):

aye@ayes-machine$ sshfs root@bees-machine:/path /local-path

Das hier funktioniert nicht (lokaler Benutzer root, Remote-Benutzer bee):

aye@ayes-machine$ sudo sshfs bee@bees-machine:/path /local-path

verwandte Informationen