Dr. Luthardt's Chemieseiten 

weiter


Valid HTML 4.01!Achtung Ein direkter Aufruf des Validators ist von https-Seiten aus nicht möglich. Hier muss die zu prüfende Seite händisch auf der Validator-Seite eingeben werden.
Valid CSS!Achtung Ein direkter Aufruf des Validators ist von https-Seiten aus nicht möglich. Hier muss die zu prüfende Seite händisch auf der Validator-Seite eingeben werden.

last modified
18.04.2024

Ihr Browser unterstützt kein CSS. Das für die Darstellung dieser Webseiten intendierte Seitenlayout wird deshalb nicht angewandt / angezeigt. Ist dies nicht Ihre Absicht, so haben Sie wahrscheinlich in Ihrem Browser den Autorenmodus deaktiviert. Dennoch sind diese Seiten les- und navigierbar.
Texte der Infoboxen werden inline ausgegeben.
Bitte erlauben Sie den Autorenmodus oder verwenden Sie einen CSS-fähigen Browser, wenn Sie diese Seiten so anschauen möchten, wie sie vom Autor gestaltet wurden.

Tipps und Tricks

von Michael Luthardtauthor: Michael Luthardt

Papierkorb für Samba-Freigaben

Linux Desktops benutzen ein virtuelles Filesystem (VFS), um die Funktionalität eines Papierkorbs (Müll, Trash) zur Verfügung zu stellen. Dateien und Verzeichnisse, die im grafischen Dateimanager "gelöscht" werden, verschiebt das VFS in einen anderen, versteckten Pfad. Im Gegensatz dazu ist Löschen auf der Konsole (rm) endgültig.

Papierkörbe kann es technisch sinnvoll nur innerhalb desselben1 lokalen Dateisystems geben. Ein Papierkorb für einen Wechseldatenträger oder Netzwerkordner muss also auf diesem selbst organisiert werden.

Für Samba läßt sich ein Papierkorb auf Freigabeebene schnell einrichten. Hier folgt ein Beispiel für passwortgeschützte persönliche Ordner auf einem Fileserver.

Die smb.conf wird für [homes]2 um das vfs-Objekt recycle erweitert:

[homes]
 comment = persönlicher Ordner
 valid users = %S, +super
 force group = super
 read only = No
 create mask = 0640
 force create mode = 0640
 force security mode = 0640
 directory mask = 0750
 force directory mode = 0750
 force directory security mode = 0750
 veto files = /.*/
 store dos attributes = Yes
 browseable = No
 root preexec = /usr/local/sbin/mktrash %S
 vfs object = recycle
   recycle:repository = /home/%S/.Trash
   recycle:directory_mode = 0750
   recycle:keeptree = Yes
   recycle:touch = Yes
   recycle:maxsize = 1000000
   recycle:versions = Yes
   recycle:noversions = *.ini | *.dat
   recycle:exclude = *.TMP | *.tmp | ~$*.doc 3
   recycle:exclude_dir = tmp | temp | cache

Der versteckte Ordner .Trash wird beim ersten Login über das preexec-Skript
 #!/bin/bash
 # Trashordner anlegen, falls nicht existent

 if [ ! -d /home/$1/.Trash ]; then
  mkdir -m0750 /home/$1/.Trash
  chown $1.super /home/$1/.Trash
 fi
unterhalb des Benutzerordners angelegt. Dort ist er genauso Passwortgeschützt wie wie die [homes] Freigaben selbst.
Mit der Samba Option veto files = /.*/ zeigt der Windows-Explorer selbst mit der Ansichtsoption "Alle Dateien und Ordner anzeigen" .Trash innerhalb des Heimatverzeichnisses nicht an (und Systemdateien wie .bashrc ebensowenig).
Eine Datei in Unterordnern wird zusamen mit ihrem Pfad nach .Trash verschoben (keeptree) und bekommt einen Zeitstempel4 (touch). Ordner werden komplett mit Inhalt verschoben.
Beim Löschen von Dateien gleichen Namens erfolgt im .Trash-Ordner eine Versionierung mit "Copy #n of" (versions).
Es ist sinnvoll, die Größe von Dateien für den Papierkorb zu beschränken (maxsize, in Bytes). Die übrigen Optionen erklären sich von selbst.

Wie bekommt der Windows-Benutzer nun gelöschte Dateien zurück? Ein Papierkorb-Symbol/Systemordner für die Server-Dateien kann es auf der Windows-Seite ja nicht geben.

Mit der folgenden Freigabe ist .Trash in der Netzwerkumgebung als login_Trash und damit direkt unter dem Heimatordner zu sehen. Die Zugriffsrechte sind die selben wie für die [homes]-Freigabe.

[%U_Trash]
# /home muss für other next traversierbar sein!
 comment = Papierkorb von %U
 path = /home/%U/.Trash
 browseable = Yes
 valid users = %U
 read only = No

Das Wiederherstellen gelöschter Dateien erfolgt mit normalem Drag&Drop von login_Trash nach login.

Die folgenden Screenshots zeigen die Funktion dieses Samba Papierkorbs von der Windows-Seite am Beispiel mluthardt:

Samba Trash

Samba Trash



EinOrdner wird gelöscht und

Samba Trash



findet sich samt Inhalt in mluthardt_Trash.

Samba Trash



Neuanlegen des Ordners EinOrdner und einer Datei Word-Dokument.doc und nochmaliges Löschen der Datei führt zur Versionierung.

Samba Trash



Wieder Anlegen der Datei Word-Dokument.doc und nochmaliges Löschen des Ordners EinOrdner führt nicht zur Versionierung des Ordners, wohl aber zur weiteren Versionierung der Datei.


           
1 Obgleich es auf grafischen Oberflächen nur ein globales Papierkorbsymbol gibt, existiert für jedes lokale Laufwerk/Dateisystem eine Recycler/Trash-Datei auf diesem selbst.
2 Die hier wiedergegebenen Parameter für [homes] entsprechen dem Kontext meines Unterrichts-Fileservers. Die Zugriffsrechte-Optionen legen diese so wie eingestellt – auch von Windows aus unveränderbar (force security mode, force directory security mode) – definitiv fest. Von Windows aus läßt sich jedoch der DOS-Schreibschutz ein- und ausschalten (store dos attributes).
3 Dieser Ausschluss ist erforderlich, damit temporäre MS-Word Dateien nicht in den Papierkorb gelangen. Bei Bedarf weitere Muster (shell globbing) hinzufügen, Groß-/Kleinschreibung beliebig. Der Trennstrich ist durch Leerzeichen von den Mustern abgesetzt! Änderungen werden nur mit …/samba restart übernommen.
4 Damit können die Papierkörbe mit einem Cronjob regelmäßig von Altlasten befreit werden: find /home/*/.Trash/* -type f -mtime +30 -atime +30 -exec rm -f {} \;
find /home/*/.Trash/* -depth -type d -mtime +30 -atime +30 -exec rmdir --ignore-fail-on-non-empty {} \;
Beide Befehle sollten dazu in angemessenem zeitlichen Abstand als tägliche Cronjobs laufen.

08.07.2008/28.10.2013

 nach oben

Änderungen dieser Seite verfolgen:

it's private by ChangeDetection