Categories: Linux

Samba Freigabe mit Papierkorb versehen

Out of the box kommt Samba ohne irgendwelche Papierkorb-Funktion daher, eine gelöschte Datei landet also im Nirvana und kann maximal aus einem Backup zurück geholt werden.

Das kann zu Problemen führen wenn die User gewohnt sind auf gelöschte Dateien über den Papierkorb zugreifen zu können, bei Windows Servern und deren Freigaben ist das der Standard.

Samba fehlt diese Funktion allerdings nicht, sie ist nur per Default nicht aktiviert bzw. kann für jede Freigabe extra aktiviert werden.

Die Funktion für eine Freigabe nachzurüsten ist sehr einfach, hier die Schritte die es dafür benötigt:

  • Anlegen eines Papierkorb Verzeichnisses

mkdir /srv/samba/freigabe/.recycle
chmod 1770 /srv/samba/freigabe/.recycle

Die Zugriffsrechte 1777 verwende ich weil auf der Freigabe nur der Besitzer und root die Datei aus dem Papierkorb löschen sollen.

Durch den vorangstellten Punkt wird das Verzeichnis im Windows als verstecktes Verzeichnis behandelt und ist nicht für Jedermann sichtbar.

  • In der smb.conf die Einstellungen bei der Freigabe vornehmen

[freigabe]
comment = eine Freigabe zum Testen
path = /srv/samba/freigabe
writable = yes
create mask = 0770
directory mask = 0770
force user = smbusers
vfs object = recycle
recycle:repository = .recycle
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0

Die Bedeutung der vfs object Parameter sind wie folgt:

recycle:repository = .recycle

Der relative Pfad zum Papierkorb innerhalb der Freigabe.

recycle:touch = Yes

Setzt die Uhrzeit der gelöschten Datei auf den Löschzeitpunkt – sehr wichtig wenn man alle Dateien älter als x-Trage automatisch per Cron Job löschen möchte!

recycle:keeptree = Yes

Behält die Ordnerstruktur im Papierkorb bei.

recycle:versions = Yes

Dateien mit dem gleichen Namen überschreiben sich nicht im Papierkorb, die zweite Datei bekommt den Namen „Copy #1 of…“

recycle:maxsize = 0

0 bedeutet hier dass alle Dateien im Papierkorb landen, gibt man hier eine Größe an landen alle Dateien ab der Größe im Nirvana und nur kleinere Dateien werden in den Papierkorb verschoben.

Das Ganze lässt sich dann noch mit „vfs object = full_audit recycle“ kombinieren und schon sieht man im Samba Logfile wer welche Dateien gelöscht hat. Erzeugt zwar jede Menge Daten im Syslog – wer aber regelmässig damit zu kämpfen hat dass Dateien „einfach verschwinden“ der findet hier schnell den Übeltäter! 😉

Damit der Papierkorb sich nicht unendlich füllt habe ich noch eine Cron Job eingebaut der täglich um 23:00 Uhr alle Dateie älter als 30 Tage aus dem Papierkorb entfernt.

In der Datei /etc/crontab einfach folgende Zeile einfügen:

0 23 * * * root find /srv/samba/freigabe/.recyclebin -atime +30 -exec rm -rf {} \;

Und schon verliert das Löschen auf Netzwerklaufwerken mit Samba Servern seinen Schrecken! 🙂

Manfred

View Comments

    • Da hast du recht, den brauchts nicht mehr! War noch vom testen übrig geblieben... :-)
      Danke!

  • da hat sich ein typo eingeschlichen…
    recycle:maxsixe = 0
    soll bestimmt
    recycle:maxsize = 0
    heissen

    • Vielen Dank C.,

      ich hab da jetzt echt mehrmals hinschauen müssen bevor ich das X und Z Problem erkannt habe - sind sich aber auch Ähnlich die beiden Buchstaben... ;-)

      Ist korrigiert.

      sg
      Manfred

Recent Posts

Postsible: Warum ich meinen eigenen Mail-Server gebaut habe

Ein Mail-Server-Setup das nicht nervt — weil alle anderen Lösungen nervig waren "Wie schwer kann…

3 Monaten ago

M$ & Office 365 haben mir gerade wieder Lebenszeit gekostet – Error 0-2048 (0)

<Sarkasmus>Die besten Softwareentwickler arbeiten bei Microsoft!</Sarkasmus> Als Endanwender würde ich mir Fehlermeldungen erwarten die aussagekräftig…

3 Monaten ago

ESET ohne Web Access Protection Modul installieren

Auf einem Linux Server braucht man eventuell das WAP Modul von ESET nicht, der Weg…

7 Monaten ago

Veeam Agent for Linux ignoriert .vdi Files

Auf einem Linux System mit installiertem Veeam Agent wird auf File-Level Basis eine Sicherung des…

1 Jahr ago

Fujitsu RX300 S7 – RAID 5 mit amCLI reparieren

Ich habe schon länger nicht mehr hier im Blog geschrieben, was nicht daran liegt dass…

1 Jahr ago

VM – ZFS Partition online vergrößern

Man macht es nicht jeden Tag, darum schadet es nicht sich's kurz zu notieren... Hier…

3 Jahren ago