Papierkorb .recycle funktioniert in der Benutzer-Homes Freigabe nicht


#1

Hallo

ich habe ein Problem mit dem dem Papierkorb unter dem User Homes Laufwerken. Es werden Dateien nur in der “Normalen” Share im Papierkorb abgelegt, gelöschte Dateien aus dem Benutzer Home werden nicht im Papierkorb verschoben oder angezeigt.

Die Papierkorb Aktivierung habe ich im UMC - Domäne - Freigaben - homes - Samba VFS-Objekte (recycle) erstellt.
Auch andere Shares wie Laufwerk-N wurden nur mittels - Samba VFS-Objekte (recycle) aktiviert.
Die detaillierten Einstellungen zum Papierkorb wurden dann mit der Datei /etc/samba/local.conf verfeinert:

[homes]
vfs objects = recycle
recycle:repository = /data/laufw-n/.recycle/home/%U
recycle:directory_mode = 0775
recycle:subdir_mode = 0770
recycle:keeptree = yes
recycle:touch = yes
recycle:versions = yes
recycle:maxsize = 100000000
recycle:exclude = *.tmp,*.temp,*.obj,*.TMP,*.TEMP
recycle:exclude_dir = windows-profiles,/tmp,/temp,/TMP,/TEMP,.recycle
recycle:noversions = *.iso, *.tmp,*.temp,*.obj,*.TMP,*.TEMP

[laufw-n]
recycle:repository = .recycle/laufw-n
recycle:directory_mode = 0775
recycle:keeptree = true
recycle:touch = true
recycle:versions = true
recycle:maxsize = 100000000
recycle:exclude = *.tmp,*.temp,*.obj,*.TMP,*.TEMP
recycle:exclude_dir = /data/laufw-n/.recycle,/tmp,/temp,/TMP,/TEMP
recycle:noversions = *.iso, *.tmp,*.temp,*.obj,*.TMP,*.TEMP

Doppelte Definitionen von Freigaben ergänzen sich, das ist mir bewusst und auch getestet.

Mein Problem ist, daß der Papierkorb für das laufw-n und auch das homes-Laufwerk zwar funktioniert. Aber nur im laufw-n-Share werden auch gelöschte “Dateien” angezeigt bzw. abgelegt.
Im Homes-Share wird nur die Ordnerstruktur mittels “keeptree” abgebildet, aber die gelöschten Dateien sind nicht vorhanden!

root@ucsserver1:/data/laufw-n/.recycle/Scanner# ls -lash
-rwxrwx---+ 1 mustermann Domain Users  145654 Apr 13 13:21 20170413132745.pdf

Hier wurde der Ordner “Scanner” angelegt, in dem Dateien auf dem Share Laufwerk-n\Scanner gelöscht wurden.

Die Ordnerberechtigungen wurden durch das löschen über die User sauber angelegt:

4 drwxrwxr-x    8 mustermann Domain Users   4096 Apr 13 14:49 .recycle
4 drwxrwx---    8 mustermann Domain Users   4096 Apr 13 14:49 .recycle/home/Mustermann

Im Userhome Laufwerk:

root@ucsserver1:/data/laufw-n/.recycle/home/Mustermann/MyDocuments/D31227WO# ls -las
insgesamt 8
4 drwxrwx---  2 Mustermann Domain Users 4096 Apr 13 15:04 .
4 drwxrwx--- 14 Mustermann2 Domain Users 4096 Apr 13 16:31 ..

wird die Ordnerstruktur mit “Keeptree” sauber abgebildet aber gelöschte Dateien sind nicht enthalten.

Hängt das vielleicht mit der Benutzer-Laufwerksfreigabe zusammen? Da die Homes-Share ja eigentlich keine Freigabe als Share darstellen, sondern vom Benutzer als Windows-Heimtverzeichns in UMC gesetzt wird?

System:
UCS-Version
4.1-4 errata360 (Vahr)
UMC-Version
8.0.28-21.926.201611091130


#2

Moin,

nahezu alle Ihrer Pfadangaben passen nicht zusammen. Zuerst zeigen Sie die Konfiguration mit recycle:repository = /data/laufw-n/.recycle/home/%U und recycle:repository = .recycle/laufw-n. Anschließend zeigen Sie Beispiele, deren Pfade nicht passen:

  • root@ucsserver1:/data/laufw-n/.recycle/Scanner — hier fehlt für die homes-Share die Zwischenkomponente /home/, für die laufw-n-Share das /laufw-n/.
  • root@ucsserver1:/data/laufw-n/.recyclehome/MyDocuments/D31227WO — hier scheint ein / zwischen /recycle und home/ zu fehlen. Und ist MyDocuments wirklich der Name eines Benutzers?

Daher ist es gerade echt nicht einfach zu sagen, wo wie was falsch läuft.

Ich hatte vor einiger Zeit mal jemandem bei der Konfiguration geholfen. Damals hatte die Verwendung vom Papierkorb in der homes-Share auch erfolgreich testen können, allerdings hatte ich das automatische Erzeugen der homes-Share über UCR-Variablen verhindert und eine manuelle Konfiguration für diese Share erzeugt.

Gruß,
mosu


#3

Korrektur der Pfad Angaben.
Ja der Username wird unter .recylce/home/ mit %U als Ordner angelegt, und auch die Ordnerstruktur bleibt erhalten. Aber die gelöschten Dateien sind in der Ordnerstruktur und Substruktur nicht zu finden.


#4

Können Sie bitte mal die Ausgabe von testparm posten? Es gibt per default nämlich kein Include für /etc/samba/local.conf in /etc/samba/smb.conf. Und testparm zeigt, welche Konfiguration tatsächlich aktiv ist.


#5
root@ucs-server1:/etc/samba# testparm > /tmp/smb
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "enable privileges" option is deprecated
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[laufw-v]"
Processing section "[laufw-n]"
Processing section "[laufw-s]"
Processing section "[laufw-i]"
Processing section "[laufw-u]"
Processing section "[homes]"
Processing section "[laufw-n]"
Loaded services file OK.
'winbind separator = +' might cause problems with group membership.

Server role: ROLE_DOMAIN_MEMBER

Press enter to see a dump of your service definitions

root@ucs-server1:/etc/samba# cat /tmp/smb
# Global parameters
[global]
        bind interfaces only = Yes
        interfaces = lo eth0 eth1
        realm = FIRMA.DE
        server string = %h univention corporate server
        workgroup = FIRMA
        domain master = No
        local master = No
        os level = 65
        preferred master = No
        machine password timeout = 0
        ldap admin dn = "cn=ucs-server1,cn=memberserver,cn=computers,dc=FIRMA,dc=de"
        ldap idmap suffix = cn=idmap,cn=univention
        ldap suffix = dc=FIRMA,dc=de
        logging = file
        max log size = 0
        usershare max shares = 0
        max xmit = 65535
        time server = Yes
        check password script = /usr/share/univention-samba/password_check %u
        map to guest = Bad User
        ntlm auth = Yes
        obey pam restrictions = Yes
        passwd chat = *New*password* %n\n *Re-enter*new*password* %n\n *password*changed*
        passwd chat timeout = 60
        security = ADS
        deadtime = 15
        max open files = 32808
        host msdfs = No
        set quota command = /usr/sbin/univention-setquota
        template homedir = /home/%D-%U
        template shell = /bin/bash
        winbind enum groups = Yes
        winbind enum users = Yes
        winbind max clients = 500
        winbind nested groups = No
        winbind separator = +
        wins server = imap.FIRMA.de
        spoolss: architecture = Windows NT x86
        idmap config FIRMA : range = 1000-54999
        idmap config FIRMA : backend = nss
        idmap config * : ldap_user_dn = cn=ucs-server1,cn=memberserver,cn=computers,dc=FIRMA,dc=de
        idmap config * : ldap_url = ldap://xxxxxxxxxxx
        idmap config * : range = 55000-64000
        idmap config * : backend = ldap
        store dos attributes = Yes
        kernel oplocks = Yes
        include = /etc/samba/base.conf
        acl allow execute always = Yes
        admin users = administrator join-backup


[homes]
        comment = Heimatverzeichnisse
        browseable = No
        create mask = 0700
        directory mask = 0700
        read only = No
        vfs objects = recycle
        recycle:noversions = *.iso, *.tmp,*.temp,*.obj,*.TMP,*.TEMP
        recycle:exclude_dir = windows-profiles,/tmp,/temp,/TMP,/TEMP,.recycle
        recycle:exclude = *.tmp,*.temp,*.obj,*.TMP,*.TEMP
        recycle:maxsize = 100000000
        recycle:versions = yes
        recycle:touch = yes
        recycle:keeptree = yes
        recycle:subdir_mode = 0770
        recycle:directory_mode = 0775
        recycle:repository = /data/laufw-n/.recycle/home/%U


[printers]
        comment = Drucker
        path = /tmp
        browseable = No
        printable = Yes
        create mask = 0700


[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        include = /etc/samba/shares.conf.d/laufw-v
        read only = No
        write list = root Administrator @Printer-Admins


[laufw-v]
        path = /data/laufw-v
        veto oplock files = /*.rtf/*.docx/*.doc/*.xls/*.mdb/
        include = /etc/samba/shares.conf.d/laufw-n
        create mask = 0770
        directory mask = 0770
        force group = Domain Users
        inherit acls = Yes
        read only = No
        vfs objects = acl_xattr


[laufw-n]
        path = /data/laufw-n
        veto oplock files = /*.rtf/*.docx/*.doc/*.xls/*.mdb/
        strict locking = No
        include = /etc/samba/shares.conf.d/laufw-s
        create mask = 0770
        directory mask = 0770
        force group = Domain Users
        read only = No
        vfs objects = acl_xattr recycle
        recycle:noversions = *.iso, *.tmp,*.temp,*.obj,*.TMP,*.TEMP
        recycle:exclude_dir = /data/laufw-n/.recycle,/tmp,/temp,/TMP,/TEMP
        recycle:exclude = *.tmp,*.temp,*.obj,*.TMP,*.TEMP
        recycle:maxsize = 100000000
        recycle:versions = true
        recycle:touch = true
        recycle:keeptree = true
        recycle:directory_mode = 0775
        recycle:repository = .recycle/laufw-n


[laufw-s]
        path = /data/laufw-s
        include = /etc/samba/shares.conf.d/laufw-i
        create mask = 0770
        directory mask = 0770
        force group = Domain Users
        inherit acls = Yes
        read only = No
        vfs objects = acl_xattr


[laufw-i]
        path = /data/laufw-i
        veto oplock files = /*.rtf/*.docx/*.doc/*.xls/*.mdb/
        include = /etc/samba/shares.conf.d/laufw-u
        create mask = 0770
        directory mask = 0770
        force group = Domain Users
        inherit acls = Yes
        read only = No
        vfs objects = acl_xattr


[laufw-u]
        path = /data/laufw-u
        include = /etc/samba/local.conf
        create mask = 0770
        directory mask = 0770
        force group = Domain Users
        inherit acls = Yes
        read only = No
        vfs objects = acl_xattr
root@ucs-server1:/etc/samba#

#6

OK, Optionen sind also wohl aktiv. Ich kann nur sagen, dass es mit Ihren Einstellungen bei mir 1:1 funktioniert: ich hab die Konfiguration via copy & paste übernommen, den Ordner /data/laufw-n/.recycle/home angelegt, ihm die Gruppe Domain Users und Modus 0770 gegeben, Samba neu gestartet, Dateien bei einem User angelegt und anschließend via Samba gelöscht. Die Dateien tauchen zusammen mit Verzeichnissen in genau der originalen Struktur in /data/laufw-n/.recycle/home/… auf.

Ihre Optionen scheinen also richtig zu sein. Daher tippe ich auf Probleme mit den Dateirechten oder den Besitzern/Gruppen. Bitte posten Sie die Ausgabe hiervon: find /data/laufw-n/.recycle/home -exec ls -ld {} \;

Edit: Pfadangabe bei find war ursprünglich falsch. Sorry.


#7
root@ucs-server1:/etc/samba# find /data/laufw-n/.recycle/home -exec ls -ld {} \;
drwxrwx--- 2 haas Domain Users 4096 Apr 13 14:59 /data/laufw-n/.recycle/home/haas/MyDocuments/D31458WO
drwxrwx--- 2 haas Domain Users 4096 Apr 13 15:04 /data/laufw-n/.recycle/home/haas/MyDocuments/D31227WO
drwxrwx--- 3 valvoda Domain Users 4096 Apr 13 14:59 /data/laufw-n/.recycle/home/valvoda/WebClouds
drwxrwx--- 2 valvoda Domain Users 4096 Apr 13 14:59 /data/laufw-n/.recycle/home/valvoda/WebClouds/OwnCloud

Ich finde es auch eigenartig das eben die Ordnerstruktur angelegt wird, das wiederum spricht dafür das der Löschprozess funktioniert und zieht. Aber die Dateien werden nicht als gelöscht angezeigt die Ordner sind immer leer,


#8

Hmm. Schuss ins Blaue: liegen /home und /data/laufw-n/.recycle/home eventuell in unterschiedlichen Dateisystemen (mount points)?


#9

Hallo Herr Bunkus,

daran habe ich auch schon gedacht. Und ja es ist richtig:

/dev/mapper/vg_data-lv_data  3,2T    2,7T  301G   91% /data   (laufw-n mit recycle)
/dev/mapper/vg_home-lv_home  739G    261G  441G   38% /home  (Usershares)

Ich versteh es irgendwie nicht… :slight_smile:


#10

Können Sie bitte mal testhalber den Pfad für die Recycling-Daten der homes-Share auf einen Pfad unterhalb von /home legen? Wenn Samba intern nur den rename- oder renameat-Syscall zum Verschieben der Dateien nutzt, so ergibt das Fehlerbild durchaus Sinn, weil rename (und renameat) nun mal nur innerhalb desselben Dateisystems verschieben kann.

Externe Befehle wie mv umgehen dieses Problem dadurch, dass sie explizit kopieren und anschließend löschen, wenn sich Quelle und Ziel auf unterschiedlichen Dateisystemen befinden.


#11

Ok, habe den Pfad umgestellt.
Ich kann aber erst heute Abend den Samba restarten lassen weil noch zu viele Nutzer darauf arbeiten.
Morgen Vormittag melde ich das Resultat
Danke


#12

Hallo Herr Bunkus,

sie hatten recht, es liegt an den unterschiedlichen physikalischen Mountpoints /home liegt auf einer LVM und /data liegt auf einer LVM anderer Platten.

Aktuell funktioniert .recycle unter der Benutzer-Homes Freigabe wenn die Einstellung lautet:

[homes]
vfs objects = recycle
recycle:repository = /home/.recycle/%U

Zusätzlich musste ich den .recycle Ordner anlegen und mit mehr Berechtigungen ausstatten, der Rest kommt dann mit dem löschen von Dateien von selbst.

Wieder was dazu gelernt. Die Idee wäre gewesen alle gelöschten Dateien aus einem Ordner raus zu vereinfachten “Helpdesk” zwecken zentral wiederherstellen zu können. Da wird wohl erstmal nichts draus.

Dankeschön
Grüße
Andreas


#13

Moin,

schön! Gut zu wissen. Dann funktioniert Samba wohl genau so, wie ich das vermutet hatte.

Warum sollte daraus nichts werden? Legen Sie doch in UCS einfach eine neue Freigabe mit Pfad /home/.recycle an und nennen Sie die z.B. »Home-Papierkorb« oder so ähnlich.

Gruß,
mosu