Wie funktioniert der Papierkorb und wo finde ich die offizielle Dokumentation, Referenz oder Spezifikation dafür?

14

Beim Versuch, den Papierkorb von gemounteten NTFS-Volumes aus zu verwalten, habe ich die FreeDesktop.org-Referenz darauf gelesen .

Als ich mich umsah und einige Tests durchführte, stellte ich fest, dass Ubuntu / Gnome nicht zu 100% den Spezifikationen entspricht. Hier ist der Grund:

  • Für Nicht- / Partitionen wird immer verwendet <driveroot>/.Trash-<uid>, es wird nie verwendet <driveroot>/.Trash/<uid>, auch wenn ich es im Voraus erstellt habe. Das funktioniert zwar, ist aber ärgerlich: Wenn ich 15 Benutzer habe, befinden sich 15 /.Trash-xxxOrdner auf meinem Laufwerk, während der andere Ansatz immer noch einen einzelnen Ordner (mit 15 Unterordnern) ergibt. Diese "Verschmutzung" in meinen Laufwerken ist sehr unangenehm. Und Angaben sagen " Wenn ein $topdir/.TrashVerzeichnis fehlt, ist ein $topdir/.Trash-$uidVerzeichnis zu verwenden ". Nun, es ist vorhanden, warum wird es also nie verwendet?

  • Root-Papierkorb funktioniert nicht , zumindest nicht sofort. Öffne nautilus als root und klicke auf den Papierkorb. es gibt einen fehler. Versuchen Sie, eine Datei zu löschen. Die Meldung lautet "Es kann nicht in den Papierkorb verschoben werden". Ok, ich weiß, dass dies durch Erstellen behoben werden kann /root/.local/share. Die Spezifikation besagt jedoch, dass für jeden neuen Benutzer automatisch ein "Home Trash" -Verzeichnis erstellt werden MUSS. Wenn dieses Verzeichnis für einen Papierkorbvorgang benötigt wird, aber nicht vorhanden ist, MUSS es von der Implementierung automatisch ohne Warnungen oder Verzögerungen erstellt werden . Warum dann der Fehler? Fehler?

  • Warum muss ich /etc/fstabEinträge für gemountete Volumes ändern und Optionen wie uid und guid hinzufügen, wenn die Volumes bereits für alle als RW gemountet sind?

Dies sind nur einige Beispiele für Abweichungen vom Standard. Die Frage ist also:

"Wenn Ubuntu die Spezifikation nicht zu 100% einhält, WIE genau funktioniert der Papierkorb? WO finde ich eine technische Referenz für die Implementierung des Papierkorbs durch Ubuntu?"

Übrigens: Wenn Ubuntu die Spezifikationen befolgt, sagen Sie mir bitte, was ich falsch mache, insbesondere in Bezug auf das /.Trash-<uid>VS- /.Trash/<uid>Problem.

Vielen Dank!

BEARBEITEN:

Noch ein paar Infos:

  • Wenn eine gegebene fs keine Unterstützung für das Sticky-Bit (VFAT, NTFS) hat, hat sie wahrscheinlich auch keine Berechtigungen (zumindest VFAT sicherlich nicht). Was hindert einen Benutzer daran, die /Wiederherstellung der Daten anderer Benutzer zu löschen ./Trash-xxx? Wenn man seinen eigenen Papierkorb lesen / schreiben kann, kann man dasselbe für das gesamte Laufwerk tun, einschließlich der Papierkorbe anderer. Richtig? Oder hat Gnome einen zusätzlichen Schutz für ./Trash-xxxOrdner in VFAT / NTFS-Dateien?

  • Wenn Linux Dateiberechtigungen für das Mounten von NTFS durch Bearbeiten der /fstabUID- und GID-Optionen "emulieren" kann, kann es dann auch das Sticky-Bit "emulieren"? Ich würde wirklich lieber das /.Trash/xxxFormat verwenden ...

  • Für das Root-Problem: Für die / -Partition kann ich den Papierkorb als Root verwenden /root/.local/share/Trash. Aber wenn ich auf Nautilus "Trash" (als root) klicke, erhalte ich eine Fehlermeldung. Nicht wahr Dateien werden also korrekt in den Papierkorb verschoben, aber ich kann nicht darauf zugreifen. Ich kann sie nur manuell "bereinigen" (indem ich Dateien lösche /root/.local/share/Trash), aber das Wiederherstellen wäre sehr schwierig (Öffnen von Infodateien und manuelles Verschieben usw.).

  • Für Nicht- / Partitionen (oder zumindest für VFAT / NTFS) kann ich nicht einmal den Papierkorb als Root verwenden: Es wird kein ./Trash-0Ordner erstellt, sondern nur "Kann nicht den Papierkorb entfernen, dauerhaft löschen?" Warum?

  • Über fstab: Ich verwende es für eine permanente Bereitstellung für meine NTFS-Partitionen. Ich habe mehrere, und wenn nicht "vormontiert", überladen sie wirklich den Desktop und / oder Nautilus. Ich hätte lieber es vormontiert, integriert in meinem Dateisystem, in Halterungen wie /data, /windows/xp, /windows/vista, und so weiter, und verlassen /mediaund seine „mount / unmount“ Flexibilität nur für wirklich austauschbare Laufwerke.

Also, wenn Ubuntu / Gnome die Spezifikation wirklich befolgt, gibt es eine Möglichkeit, die Root-Probleme zu beheben und das Sticky-Bit für (zumindest) meine fstab'ed NTFS-Partitionen zu "emulieren"?

MestreLion
quelle

Antworten:

3

GNOME verwendet .Trash meines Wissens korrekt. Wenn Sie in gio / glocalfile.c nachsehen, werden Sie feststellen, dass es versucht, das .Trash-Verzeichnis zu verwenden, falls es existiert. Beachten Sie jedoch, dass das Verzeichnis die richtigen Berechtigungen haben muss, damit Benutzer Papierkorbdateien sicher darin speichern können (und sicher hier, ich meine, dass andere Benutzer nicht in der Lage sind, die Papierkorbdateien der Benutzer wiederherzustellen). Für GNOME ist es erforderlich, dass im .Trash-Verzeichnis das Sticky-Bit gesetzt ist - siehe Trash-Verzeichnisse, Anmerkung (1) in der Trash-Spezifikation von FreeDesktop.Org.

Das Hauptproblem bei der oben beschriebenen Vorgehensweise ist, dass es sich bei den meisten Wechseldatenträgern um FAT handelt, das das Sticky-Bit nicht unterstützt. Die einzige Möglichkeit, dies sicher zu handhaben, besteht darin, ein benutzerspezifisches Papierkorbverzeichnis zu verwenden.

In Bezug auf den Stamm-Papierkorb - Ich kann das von Ihnen beschriebene Problem nicht reproduzieren, es scheint für mich gut zu funktionieren.

Hinsichtlich / etc / fstab bin ich mir nicht sicher, wo das Problem liegt: Sie sollten mit fstab herumspielen müssen, es sei denn, Sie möchten die vollständige Kontrolle darüber haben, wo ein externes Dateisystem eingehängt ist. Normalerweise werden Wechselmedien beim Erkennen in / media für den derzeit aktiven Benutzer automatisch bereitgestellt, aber es ist dann für keinen anderen Benutzer zugänglich. Wenn Sie ein anderes Setup wünschen, sollten Sie mit der Konfigurationsdatei herumspielen. Ich verstehe allerdings nicht, wie das mit Müll zusammenhängt.

Guss
quelle
Vielen Dank! Sie gaben mir VIELE interessante Informationen, und ein paar Fragen stellten sich ... Wo soll ich Ihre Kommentare stellen / beantworten? Hier in diesem Kommentar oder Bearbeitung meiner ursprünglichen Frage?
MestreLion
Ich habe Ihre als akzeptierte Antwort markiert ... aber wenn möglich, antworten Sie auf die neuen Fragen, die ich in meiner (bearbeiteten) Frage erwähnt habe. Und vielen Dank für Ihre Antwort!
MestreLion
1

Ein bisschen zu spät, aber wenn jemand interessiert ist: Ich hatte das gleiche Problem, aber auf Empfehlung habe ich Dolphin heruntergeladen. Ich habe dann Dolphin sudo dolphinim Terminal durchgearbeitet.

Wenn Sie nun mit der rechten Maustaste auf den Papierkorb klicken und "Papierkorb leeren" auswählen, werden die Dateien gelöscht , anstatt dass ein Fehler ausgegeben wird.

Dies bezieht sich nicht wirklich auf Ihre Frage, sondern ist einfach eine Abhilfe.

SimplySimon
quelle