Dies ist leider eines der verwirrendsten Dinge bei der Dateifreigabe unter Unixes. Und ich bin schlecht darin, verwirrende Dinge zu erklären.
Was Sie sehen in ls -l
Ausgabe (zum Beispiel), ist der Fernbedienungs - ID des Benutzers aus der Sicht des lokalen Systems übersetzt.
Wenn Programme wie ls
die Standardfunktionen zum Nachschlagen von Dateiinformationen verwenden, kann der Dateisystemtreiber ihnen nur numerische Benutzer-IDs und keine Textnamen zuweisen. (Bislang nicht zu unterschiedlich von Windows.) Um die UIDs in Namen zu übersetzen, rufen Sie ls
eine völlig andere Betriebssystemkomponente auf, die Namensdienstbibliotheken, die keine Kenntnis darüber haben, woher diese UID stammt, und daher nur Konten übersetzen können, die die Betriebssystem weiß Bescheid, kann aber nicht zurückgehen und den Dateisystemtreiber um Hilfe bitten. (Hier kommt der Unterschied ins Spiel.)
Wenn der Server beispielsweise über zwei Dateien verfügt, von denen eine der Root-ID (UID 0) und die andere der Luke-ID (UID 1000) gehört, ls
wird nur bekannt sein, dass sie "0" und "1000" gehören für lokale Konten mit denselben UIDs. "0" ist immer root, aber "1000" kann Luke sein oder nicht. Wenn die UID zu einem in LDAP oder NIS oder AD gespeicherten Konto gehört und das Client-Betriebssystem tatsächlich so konfiguriert ist , dass in LDAP nach Benutzerkonten gesucht wird, wird der richtige Benutzername angegeben. Andernfalls könnte es tatsächlich lügen, da lokale Konto-UIDs (1000, 1001, ...) dazu neigen, unterschiedlichen Personen auf unterschiedlichen 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, und Programme wie diese ls
versuchen im Allgemeinen, dateisystemspezifische Tricks zu vermeiden . Noch mehr leider nicht alle Netzwerk - Dateisystem - Protokolle können die Benutzernamen übertragen. CIFS aka SMB kann, NFSv4 kann, die meisten anderen diejenigen nicht kann)
Aber nichts davon ist wirklich von Bedeutung, da das , was Sie mit der Datei tun können, immer davon abhängt, was der Server weiß und nicht davon, was der Client sieht. Wenn Sie zum Beispiel 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 sollen. Dasselbe gilt für CIFS, AFS usw.
Der Eigentümer ist der Root-Benutzer auf dem Remotecomputer. Wenn Sie auf dem Remotecomputer als Root darauf zugreifen möchten, müssen Sie ihn als Root auf dem Remotecomputer bereitstellen.
Mit anderen Worten, dies sollte funktionieren (lokaler Benutzer aye, Remote-Benutzer root):
Dies funktioniert nicht (lokaler Benutzer root, entfernter Benutzer bee):
quelle