Papierkorb für Windows-User auch mit Samba-Server-Freigabe

Der Beitrag beschreibt wie man einen Papierkorb für Windows-Anwender bei einer Samba (CIFS)-Freigabe einrichtet. Der Papierkorb wird automatisch geleert, aber nur der Müll, der mindestens 14 Tage alt ist.

Wie wär´s mit einem Papierkorb der selbst täglich (nur) alten Müll entfernt?

Wer als Dateiserver für Windows-Benutzer einen Samba-Server nutzt, der muss auch auf den Papierkorb nicht verzichten. In meiner Agentur ist der Papierkorb so konfiguriert, dass die gelöschten Dateien bestimmter Netzwerkfreigaben in einem Ordner mit Namen .Papierkorb landen und zwar in dem Unterordner des Nutzers, der die Datei gelöscht hat. Ein weiterer Vorteil dieser Konzeption ist, dass man den Papierkorb automatisch per cronjob löschen kann. Bei mir werden Dateien im Papierkorb, die älter sind als 14 Tage, gelöscht – sozusagen ein Papierkorb in dem immer nur die alten Dokumente ausgeleert werden.

Der Papierkorb ersetzt natürlich KEINE Datensicherung, ist aber hilfreich wenn versehentlich durch Benutzer Dateien oder Ordner gelöscht werden.

Wie gehts?

Grundsätzlich kann mit dem VFS-Modul recycle seit Samba 3 ein Papierkorb realisiert werden. Samba gibt jede Anfrage an das UNIX-Filesystem durch das geladene VFS-Modul weiter. Mit VFS-Modulen kann z.B. auch ein Virenscanner eingebunden werden, der die Dateien der Netzwerkfreigabe auf Viren untersucht, dies ist aber NICHT Thema dieses Beitrags.

Wie alle Samba-Konfigurationen, wird auch das VFS-Modul recycle in der /etc/samba/smb.conf konfiguriert. Man kann die Einstellung entweder innerhalb eines einzelnen Shares oder global für alle Freigaben vornehmen.

In unserem Fall wird für den Samba-Share projekte ein Papierkorb eingerichtet. Der komplette Share-Eintrag lautet:

[projekte]
 comment = Projekte und Daten von Kunden, Lieferanten
 path = /home/hadiag/projekte
 read only = No
 create mask = 0775
 directory mask = 0775
 vfs object = recycle
 recycle:repository = .Papierkorb/%U
 recycle:keeptree = yes
 recycle:exclude = *.tmp *.temp *.swp *.o *.obj ~s* Backup* AUTOBACKUP*
 recycle:exclude_dir = /tmp /temp /cache /.Cache /.cache
 recycle:touch = yes
 

Damit alle Benutzer in das Verzeichnis .Papierkorb „schreiben“ also Dateien löschen können, müssen sie dort Schreib- und Ausführrechte haben.

Wer möchte, dass der Inhalt des Papierkorbs regelmäßig gelöscht wird, kann dies mit einem Cronjob erreichen, etwa:

#!/bin/sh
 # Alle Dateien in den Verzeichnissen mit Namen .Papierkorb die älter sind als 14 Tage sollen gelöscht werden.
 # Diese Dateien sind mit Samba-Clients gelöschte Dateien (siehe smb.conf).
 find /home -type f -wholename "*/.Papierkorb/*" -ctime +14 -exec rm "{}" \;
 

So, nun bleiben nur noch viele, viele leere Verzeichnisse übrig. Auch die möchte man löschen. In meinem Beispiel befinden sich die .Papierkorb-Verzeichnisse alle irgendwo unterhalb von /home. Mit dem folgenden Befehl lösche ich die Verzeichnisse die dort so heißen, und leer sind:

find /home -depth -type d -empty -wholename "*/.Papierkorb/*" -exec rmdir "{}" \;

ACHTUNG mit rm sollte man nur umgehen, wenn man weiß was man tut, siehe „man rm“; Zum Test des obigen Kommandos empehle ich -exec durch -ok zu ersetzen – so muss man jedes Kommando bestätigen. Nutzung obiger Angaben wie immer ohne Gewähr.

Ubuntu und das fehlende root-Password

Anders als andere Linuxe gibt es bei Ubuntu erst mal kein Passwort für den Benutzer root. Administrationsaufgaben erledigt der Hauptanwender, der sich mittels seines eigenen Passwortes vor Systemkonfigurationen als berechtiger Superanwender (sudo-User) legitimieren muss. „Ubuntu und das fehlende root-Password“ weiterlesen

Man sollte doch mal regex lernen…

Hat mal wieder jemand Webseiten statisch erstellt – oder mittels eines Programmes, das nun leider nicht mehr zur Verfügung steht – und soll in diesen vielen Seiten eine Änderung vorgenommen werden, dann ist es schön, wenn man sich etwas mit Regular Expressions sowie den GNU-Programmen find, sed und xarg auskennt und eine bash zur Verfügung steht.

Will man z.B. in allen php-Dateien des Kunden webX etwas ersetzen, so kann die folgende Konstruktion hilfreich sein:
find /var/www/webX/html/ -name *.php -exec sed -i 's/SUCHEN/ERSETZEN/g;' {} \;
wobei SUCHEN und ERSETZEN jeweils für Regular Expressions stehen.

Und schon sind wir bei dem wirklich spannenden Thema RegEx. Ich habe dazu noch nicht viel zu sagen – aber viel zu lernen!

Meine Gute-Nacht-Lektüre:

  • Wikipedia.de
  • www.regenechsen.de
  • Regex-Tutorial bei Scribd (Bitte Hinweis zu Scribd beachten!)
  • DSL-Verbindungsabbrüche? Erst mal protokollieren…

    Cronjob zum Loggen von DSL-Verbindungsabbrüchen einrichten.

    Seit gestern treten bei uns häufig Abbrüche der Internetverbindung auf. Der Abbruch dauert einige Sekunden bis wenige Minuten. „DSL-Verbindungsabbrüche? Erst mal protokollieren…“ weiterlesen

    Wer länger braucht, ist selber Schuld: Die bash für Einsteiger

    Notizen, Tipps und Tricks zur bash 3.x

    Früher war es normal, dass man nach dem Einschalten eines Computers einen blinkenden Cursor erblickte. Das war bei den meisten Heimcomputern der 80er Jahre so, das war auch bei den PCs mit MSDOS so. Anders war das in den 80ern bei den Apple MacIntosh-Computern, welche wir PC-Freaks deshalb nicht ernst nahmen, weil wir dachten nur unsere Ansicht des Dateisystems wäre der „richtige“ Zugang zum Computer. Nicht ernst genommen hat man damals auch andere Computer mit grafischer Oberfläche, wie den tollen Atari und natürlich die Amigas mit ihren flimmrigen, hochauflösenden und bunten Oberflächen. Sowas nannten „echte Profis“ damals „Spielecomputer“.

    Die Profis haben sich von Microsoft eines besseren belehren lassen und sitzen nun meist an 3D animierten Vista-PCs mit der Rechenleistung von 1000 PCs von damals – nur auf der Grafikkarte.
    OK, wer´s braucht. Auch ich ziehe für die meiste Zeit am Computer eine grafische Oberfläche der „Kommandozeile“ vor, aber ich bin auch begeistert von den Möglichkeiten der bash. Gerade weil ich noch den kastrierten Kommandozeileninterpreter von MSDOS kenne, weiß ich die Möglichkeiten der bash zu schätzen. Der Verein „Linux User Schwabach e.V.“ betrachtet es als (s)eine wichtige Aufgabe, Kenntnisse über das freie Betriebssystem Linux zu vermitteln und bietet ein „Guru“training an, das dem an fundierten Wissen interessierten Einsteiger dabei hilft u.a. die „bash“ kennen – und vielleicht lieben – zu lernen. Meine folgenden Beispiele sind in Rahmen meiner Teilnahme an der LUSC-Veranstaltung entstanden.

    Dass eine grafische Oberfläche wunderbar einher geht mit einer Shell (Kommandozeile) zeigt nicht nur Linux, sondern auch OS X. Auch Mac User haben eine Shell – auch wenn sie davon vielleicht nichts wissen. Die unter den aktuellen Linux-Distributionen übliche Shell ist die bash.

    Ein Beispiel:
    Stellen Sie sich mal vor, sie möchten für jeden Monat eines Jahres ein Verzeichnis anlegen. Und in jedem Monat möchten Sie für jeden Tag ein Unterverzeichnis anlegen. Wie lange brauchen Sie dafür?
    Mit der bash (Version 3.x) geht das in ungefähr 1 Sekunde (Tipparbeit)

    „Wer länger braucht, ist selber Schuld: Die bash für Einsteiger“ weiterlesen

    mysql-Datenbankzugriff – ausgesperrt

    Ohne MySQL gibt es kaum ein Web-Projekt. Ob CMS, Wiki, Shop oder Portal – meist werden die Daten in einer mysql-Datenbank gespeichert. Auch die von mir verwendete Faktura speichert ihre Daten in einer mysql-Datenbank auf dem Büroserver. Dumm nur, wenn dann plötzlich – wie heute – kein Zugriff auf die Datenbank mehr möglich ist.

    „mysql-Datenbankzugriff – ausgesperrt“ weiterlesen