Zwei Verzeichnisse mit identischem Besitz, aber "cat> f" erzeugt Dateien mit unterschiedlichen Besitzrechten

552
Diagon

Warum haben myfile.txt und myotherfile.txt unterschiedliche Eigentümer?

Das erste Verzeichnis, myhandle auf meinem Desktop, wurde mit erstellt sudo chown. Das zweite Verzeichnis unter / run / ... wurde von keybase als vernetztes Dateisystem erstellt.

Von meinem ~ / Desktop / myhandle:

$ ls -l .. total 0 drwx------ 1 me root 126 Nov 23 23:10 myhandle  $ ls -la total 0 drwx------ 1 me root 126 Nov 23 23:10 . dr-x------ 1 me root 46 Nov 20 01:50 ..  $ cat > myfile.txt test  $ ls -la total 4 drwx------ 1 me root 146 Nov 23 23:11 . dr-x------ 1 me root 46 Nov 20 01:50 .. -rw-rw-r-- 1 me me 5 Nov 23 23:11 myfile.txt 

Von / run / user / 1000 / keybase / kbfs / private / myhandle

$ ls -l .. total 1 drwx------ 1 me root 504 Nov 23 23:12 myhandle  $ ls -la total 0  $ cat > myotherfile.txt test  $ ls -la total 1 -rw------- 1 me root 5 Nov 23 23:12 myotherfile.txt 
2

1 Antwort auf die Frage

2
Christoph Sommer

Die Pfadkomponente kbfsklingt so, als könnte sich der Inhalt auf einem anderen Dateisystem befinden ( kbfsist der Name des Dateisystems, das keybase verwendet).

Es ist nicht ungewöhnlich, dass spezielle Dateisysteme nicht die üblichen Erwartungen an Berechtigungen erfüllen.

Siehe auch einen alten Fehler in Keybase, bei dem im Dateisystem völlig andere Berechtigungen gemeldet wurden als tatsächlich: https://github.com/keybase/kbfs/issues/212

Die Schnellsuche zeigt, dass / run / user / 1000 / keybase / kbfs ein Mountpoint für das Dateisystem [FUSE] (https://en.wikipedia.org/wiki/Filesystem_in_Userspace) ist, und die entsprechende ausführbare Datei ist `kbfsfuse`. Kamil Maciorowski vor 5 Jahren 0
Ich denke, was passiert - vielleicht können Sie mir sagen, ob dies richtig ist - wenn Sie in dieses Dateisystem schreiben, ist es eigentlich Keybase, das schreibt, und Keybase selbst wird als Benutzer selbst ausgeführt, aber als Gruppen-Root. (Funktioniert es auf diese Weise, dass ein ausgeführter Dämon einen Benutzer / eine Gruppe hat, unter der er ausgeführt wird?) Als Ergebnis übernehmen Dateien diesen Besitz. Diagon vor 5 Jahren 0
Dateisysteme können beliebig viele Berechtigungen angeben und können mit jeder Logik entscheiden, wer was im Dateisystem tun darf. Die meisten Standard-Dateisysteme halten sich dabei an etablierte Konventionen, so dass der Benutzer vorhersagen kann, welche Vorgänge erfolgreich sein werden - aber tatsächlich hindert ein Dateisystem nichts daran, einem Benutzer mitzuteilen, dass "niemand in diese Datei schreiben kann" und in Wirklichkeit jeder dies zulässt zu tun Christoph Sommer vor 5 Jahren 0