Marco Krip: Kann Dateien in Samba nicht löschen

Hi!

Woran kann es liegen, dass ich Dateien, die ich in meinen (Samba) Freigabeordner schreibe nicht löschen aber verändern kann. Was muss ich denn da anpassen?

Grüße
Marco

  1. hallo,

    Woran kann es liegen, dass ich Dateien, die ich in meinen (Samba) Freigabeordner schreibe nicht löschen aber verändern kann.

    An fehlenden Rechten.

    Was muss ich denn da anpassen?

    Die Konfigurationsdatei smb.conf.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. echo $begrüßung;

    Woran kann es liegen, dass ich Dateien, die ich in meinen (Samba) Freigabeordner schreibe nicht löschen aber verändern kann. Was muss ich denn da anpassen?

    Vermutlich musst du den Schreibschutz aufheben. Die Optionen dafür heißen readonly oder writeable oder sowas ähnlich. Schau mal darunter in der Dokumentation nach, wie die genaue Schreibweise und die Parameter dafür lauten.

    echo "$verabschiedung $name";

    1. Hi!

      Vermutlich musst du den Schreibschutz aufheben. Die Optionen dafür heißen readonly oder writeable oder sowas ähnlich.

      Klar "read only" gibt es und steht auf "no" ansonsten dürfte ich ja auch keine Dateien anlegen.

      Grüße

      1. echo $begrüßung;

        Klar "read only" gibt es und steht auf "no" ansonsten dürfte ich ja auch keine Dateien anlegen.

        Ah, o.k. das Anlegen hatte ich überlesen.
        Ist das bei allen Dateien so, oder nur bei solchen, die Nicht-ASCII-Zeichen im Dateinamen verwenden, Umlaute beispielsweise?

        echo "$verabschiedung $name";

        1. Hi!

          Ist das bei allen Dateien so, oder nur bei solchen, die Nicht-ASCII-Zeichen im Dateinamen verwenden, Umlaute beispielsweise?

          Ich kann in der Tat nur ascii dateien anlegen.

          Grüße

          1. Hi!

            Ich kann in der Tat nur ascii dateien anlegen.

            Kleine Korrektur. In einer Freigabe(drwxr-xr-t) kann ich nur ascii anlegen und nicht löschen aber verändern.
            In einer anderen Freigabe(drwxr-xr-x) kann ich alles anlegen aber löschen geht ebenfalls nicht.

            Grüße

            1. echo $begrüßung;

              Ich bitte darum, dass du mal

              • den globalen und
              • den für diese Freigabe geltenden Konfigurationsteil (abzüglich Kommentaren) postest, und auch
              • den Benutzernamen, dem das freigegebene Verzeichnis gehört, sowie
              • den Benutzernamen, der bei der Anmeldung an der Freigabe verwendet wird.
              • Versionsnummer von Samba.

              Anonymisierungen von Namen und Unkenntlichmachen von IP-Adressen und Passwörtern stellen kein Problem dar.

              Vorher könntest du noch mal  case sensitive = yes  unter [global]  probieren.

              echo "$verabschiedung $name";

              1. Hi!

                Samba: 3.0.13-1.1
                System: SuSE 9.3 (VPS)
                Verbindung via OpenVPN

                Zu den Benutzernamen: Verzeichnis-Besitzername und Anmelde-Logonname sind identisch.

                  
                [global]  
                        workgroup = Irgendwas  
                        printing = cups  
                        printcap name = cups  
                        printcap cache time = 750  
                        cups options = raw  
                        printer admin = @ntadmin, root, administrator  
                        username map = /etc/samba/smbusers  
                        map to guest = Bad User  
                        include = /etc/samba/dhcp.conf  
                        logon path = \\%L\profiles\.msprofile  
                        logon home = \\%L\%U\.9xprofile  
                        logon drive = P:  
                        add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$  
                        domain logons = No  
                        domain master = No  
                        security = user  
                        passdb backend = smbpasswd  
                        read only = No  
                        msdfs proxy = no  
                        wins support = Yes  
                        case sensitive = yes  
                  
                [freigabe]  
                        inherit acls = Yes  
                        path = /home/marco/verzeichnis  
                        public = Yes  
                        read only = No  
                        force create mode = 0777  
                        force directory mode = 0777  
                        create mask = 0777  
                        directory mask = 0777  
                        guest ok = Yes  
                        browseable = Yes  
                  
                
                

                Grüße

                1. echo $begrüßung;

                  Tut mir leid, aber ich weiß nicht, woran es liegen könnte. Nur eins fällt mir auf. Wenn du, wie du sagst kein ACL verwendest, was macht dann diese Zeile da?

                  inherit acls = Yes

                  Ich kann mir auch vorstellen, dass einige Optionen nicht wie angegeben aktiv werden, oder dass andere Default-Einstellungen wirken. Neben der Möglichkeit, die Konfigurationsdatei auszulesen, kann man sich auch noch anzeigen lassen, welche Einstellungen aktuell wirken. Das müsste über das SWAT (gehört mit zu Samba) gehen. Informiere dich doch mal darüber, wenn du das Tool noch nicht kennst und schau alle Einstellungen an, die was mit Berechtigung zu tun haben und/oder Dateinamen verändern (Zeichensatz, Groß/Kleinschreibung).

                  echo "$verabschiedung $name";

                  1. echo $begrüßung;

                    Tut mir leid, aber ich weiß nicht, woran es liegen könnte.

                    Vielen Dank für deine Mühe.

                    Nur eins fällt mir auf. Wenn du, wie du sagst kein ACL verwendest, was macht dann diese Zeile da?

                    inherit acls = Yes

                    War default ich habs sowohl mit yes als auch mit no versucht.

                    Das müsste über das SWAT (gehört mit zu Samba) gehen. Informiere dich doch mal darüber, wenn du das Tool noch nicht kennst

                    Jepp, danke

                    Bis bald

  3. Hallo,

    Woran kann es liegen, dass ich Dateien, die ich in meinen (Samba) Freigabeordner schreibe nicht löschen aber verändern kann. Was muss ich denn da anpassen?

    Hm, nicht löschen aber verändern und neu anlegen? Das hört sich nicht nach den Standarddateisystemberechtigungen von Linux an, eher nach ACLs. Nutzt Dein System ACLs an Stelle der üblichen Dateisystemberechtigungen?

    Am Einfachsten kannst Du das kontrollieren, indem Du mit einem Windows-System, welches ACLs managen kann (Windows 2000 Prof. oder Windows XP Prof.) mal als Administrator der Samba-Domäne mit der rechten Maustaste auf ein via Samba eingebundenes Netzlaufwerk oder einen Ordner darin klickst und Dir die Sicherheitseinstellungen anschaust. Welche Berechtigungen können da eingestellt werden?

    Am Linuxrechner kannst Du mit ls -l am + hinter den Standardberechtigungen sehen, ob ACLs verwendet werden. Mit

    getfacl /pfad/zum/file/oder/verzeichnis

    kannst Du die ACLs anzeigen. Alternativ mal in der /etc/fstab nachschauen, ob Dateisysteme mit acl gemountet werden.

    viele Grüße

    Axel

    1. Hi

      Am Linuxrechner kannst Du mit ls -l am + hinter den Standardberechtigungen sehen, ob ACLs verwendet werden. Mit

      getfacl /pfad/zum/file/oder/verzeichnis

      kannst Du die ACLs anzeigen.

      1. Kein + zu sehen.

      2. Wie erkenne ich die dann?

      so schauts aus:
      [code=xml]

      file: freigabe

      owner: marco

      group: users

      user::rwx
      group::rwx
      other::rwx
      [/code]

      Alternativ mal in der /etc/fstab nachschauen, ob Dateisysteme mit acl gemountet werden.

      Das ist nicht der Fall.

      Grüße

      1. Hallo,

        1. Kein + zu sehen.
          so schauts aus:

        file: freigabe

        owner: marco

        group: users

        user::rwx
        group::rwx
        other::rwx

        Alternativ mal in der /etc/fstab nachschauen, ob Dateisysteme mit acl gemountet werden.
        Das ist nicht der Fall.

        Dann nutzt Dein Linux-System die Standarddateiberechtigungen und keine ACLs. Hm, damit ist das beschriebene Verhalten aber noch immer unerklärlich.

        Mit welchem System greifst Du auf die Freigaben zu? Wenn mit Windows, kannst Du Dir mal die Sicherheitseinstellungen des verbundenen Netzwerklaufwerks oder der Freigabe in der Netzwerkumgebeung anzeigen lassen? Rechtsklick drauf - Eigenschaften - Sicherheitseinstellungen. Welche Berechtigungen werden dort angezeigt?

        Und beschreibe doch noch mal genauer, was geht und was nicht geht, inklusive Dateinamenbeispiel, Verzeichnis- und Dateiberechtigungen im Linux und Freigabedirektive in smb.conf.

        viele Grüße

        Axel

        1. Hi!

          Mit welchem System greifst Du auf die Freigaben zu? [...] Welche Berechtigungen werden dort angezeigt?

          XP - Prof. 2002 - SP2 incl. allen Patches bis zum Patchday mitte April 06.
          Da steht nichts von Berechtigungen wenn ich mit der rechten Maustaste auf die Freigaben bzw. Netzlaufwerke gehe.

          Und beschreibe doch noch mal genauer, was geht und was nicht geht, inklusive Dateinamenbeispiel, Verzeichnis- und Dateiberechtigungen im Linux und Freigabedirektive in smb.conf.

          Also, ich kann eine Datei Anlegen (sowohl ascii als auch binär (nennt man das so?). Das Verschieben von Dateien funktioniert einwandfrei.
          Beim Löschen bekomme ich den fehler: "WindowsXP-KB908519-x86-DEU.exe kann nicht gelöscht werden. Zugriff verweigert". Bei jedem versuch eine Datei zu löschen werden ca. 4kB vom entfernten Dateisystem belegt. (Ähh.. da wird was geloggt, muss ich gleich mal nachschauen).

          Der freigegebene Ordner hat mitlerweile alle Berechtigungen rwx für alle. Teile meiner smb.conf.

          Grüße

          1. Hallo,

            XP - Prof. 2002 - SP2 incl. allen Patches bis zum Patchday mitte April 06.
            Da steht nichts von Berechtigungen wenn ich mit der rechten Maustaste auf die Freigaben bzw. Netzlaufwerke gehe.

            Rechtsklick - Eigenschaften - Registerkarte "Sicherheit" existiert nicht?

            Also, ich kann eine Datei Anlegen (sowohl ascii als auch binär (nennt man das so?). Das Verschieben von Dateien funktioniert einwandfrei.
            Beim Löschen bekomme ich den fehler: "WindowsXP-KB908519-x86-DEU.exe kann nicht gelöscht werden. Zugriff verweigert".

            Und in einen anderen Ordner _verschieben_ kannst Du _diese_ Datei? Kann es sein, dass nicht das remote-System, sondern Dein lokales Windows die Datei noch blockt? Hattest Du die vorher gestartet? Hast Du das Löschem mal nach einem Neustart des Windows probiert?

            Bei jedem versuch eine Datei zu löschen werden ca. 4kB vom entfernten Dateisystem belegt. (Ähh.. da wird was geloggt, muss ich gleich mal nachschauen).

            Ja, wäre interessant. Wobei ich grade nicht weiß, ob und wo SuSE standardmäßig samba-logs speichert. Ansonsten mal in der smb.conf explizit angeben.

            viele Grüße

            Axel

            1. Hi!

              Rechtsklick - Eigenschaften - Registerkarte "Sicherheit" existiert nicht?

              Da steht nix von "Sicherheit" ganz großes Indianerehrenwort! =)

              Und in einen anderen Ordner _verschieben_ kannst Du _diese_ Datei? Kann es sein, dass nicht das remote-System, sondern Dein lokales Windows die Datei noch blockt? Hattest Du die vorher gestartet? Hast Du das Löschem mal nach einem Neustart des Windows probiert?

              Ich kann jede X-beliebige innerhalb der Freigabe verschieben aber keine löschen. Meines wissens nach hatte Windows auf keine der Dateien die ich zu löschen versuchte zugriff. (Weder lesend noch schreibend.)

              Ja, wäre interessant. Wobei ich grade nicht weiß, ob und wo SuSE standardmäßig samba-logs speichert. Ansonsten mal in der smb.conf explizit angeben.

              samba logt, wie alle anderen auch, in /var/log. Leider hat mich das nicht weiter gebracht:
              [code=xml]
              [2006/04/28 10:51:40, 0] tdb/tdbutil.c:tdb_log(725)
                tdb(/var/lib/samba/locking.tdb): expand_file ftruncate to 8192 failed (Permission denied)
              [2006/04/28 10:51:40, 0] smbd/trans2.c:set_delete_on_close_over_all(3058)
                set_delete_on_close_over_all: failed to change delete on close flag for file WindowsXP-KB908519-x86-DEU.exe
              [2006/04/28 10:51:40, 0] smbd/trans2.c:set_delete_on_close_over_all(3058)
                set_delete_on_close_over_all: failed to change delete on close flag for file WindowsXP-KB908519-x86-DEU.exe
              [2006/04/28 10:51:40, 0] smbd/close.c:close_normal_file(195)
                close_normal_file: failed to change delete on close flag for file WindowsXP-KB908519-x86-DEU.exe
              [/code]

              Naja... Its not a bug its a feature. So kann nichts versehentlich gelöscht werden.

              Grüße
              Marco

              1. echo $begrüßung;

                Und in einen anderen Ordner _verschieben_ kannst Du _diese_ Datei? Kann es sein, dass nicht das remote-System, sondern Dein lokales Windows die Datei noch blockt? Hattest Du die vorher gestartet? Hast Du das Löschem mal nach einem Neustart des Windows probiert?
                Ich kann jede X-beliebige innerhalb der Freigabe verschieben aber keine löschen. Meines wissens nach hatte Windows auf keine der Dateien die ich zu löschen versuchte zugriff. (Weder lesend noch schreibend.)

                Manchmal kann es sein, dass Windows selber die Datei offenhält, weil irgendein Automatismus den Inhalt analysiert, um irgendwelche Informationen daraus zu lesen, die es vielleicht in einem Tooltip oder sonstwo anzuzeigen gedenkt. Bei lokalen Dateien geht der Vorgang recht schnell, so dass er nicht auffällt, aber bei weniger gut angebundenen Remote-Ressourcen kann sich das schon mal bemerkbar machen. Manchmal hilft es, nach dem Rechtsklick ein paar Sekunden zu warten, und dann erst das "Löschen" auszuwählen.

                echo "$verabschiedung $name";

              2. Hallo,»» Hi!

                Rechtsklick - Eigenschaften - Registerkarte "Sicherheit" existiert nicht?
                Da steht nix von "Sicherheit" ganz großes Indianerehrenwort! =)

                Aha, ja, hatte ich übersehen. Da läuft ja eine Workgroup, keine Domain. Arbeitsplatz - Extras - Ordneroptionen - Einfache Dateifreigabe deaktivieren.

                samba logt, wie alle anderen auch, in /var/log. Leider hat mich das nicht weiter gebracht:
                [code]
                [2006/04/28 10:51:40, 0] tdb/tdbutil.c:tdb_log(725)
                  tdb(/var/lib/samba/locking.tdb): expand_file ftruncate to 8192 failed (Permission denied)

                http://www.google.de/search?hl=de&q=tdb(%2Fvar%2Flib%2Fsamba%2Flocking.tdb)%3A+expand_file+ftruncate&btnG=Suche&meta=

                [2006/04/28 10:51:40, 0] smbd/trans2.c:set_delete_on_close_over_all(3058)
                  set_delete_on_close_over_all: failed to change delete on close flag for file WindowsXP-KB908519-x86-DEU.exe

                http://www.google.de/search?hl=de&q=failed+to+change+delete+on+close+flag+for+file+&meta=

                zumindest hatten andere das Problem auch schon.

                Die "locking.tdb löschen und samba neustarten" war der Rat, der offensichtlich Hilfe brachte oder

                "just have to stop Samba, delete all those
                [VAR.LOCKS]*.TDB files and restart Samba. Do NOT delete the SECRETS.TDB file
                situated in the SAMBA_ROOT:[PRIVATE] area.
                "

                der andere.

                viele Grüße

                Axel

                1. Hi!

                  Ich habs... der Hinweis mit locking.tdb ging in die richtige Richtung! Leider hat aber löschen der Datei und server restart nicht geholfen.

                  In den logs ist mir aber noch ein Eintrag aufgefallen:
                  connect to server freigabe initially as user nobody (uid=balala...
                  Besitzer und Gruppe von locking.tdb ist aber root.
                  "chown nobody:root locking.tdb" war mein Freund.

                  Danke für eure Geduld!

                  Der fröhlich löschende
                  Marco

                  1. Hallo,

                    In den logs ist mir aber noch ein Eintrag aufgefallen:
                    connect to server freigabe initially as user nobody (uid=balala...

                    Dann klappt aber Dein Benutzermanagement nicht. Du greifst als Guest auf die Freigabe zu. Entweder wirklich als Windows-Gast oder mit Benutzername ohne Kennwort. Das geht nur, weil in der smb.conf

                    guest ok = Yes

                    steht. Warum eigentlich?

                    Besitzer und Gruppe von locking.tdb ist aber root.
                    "chown nobody:root locking.tdb" war mein Freund.

                    Das wäre für mich keine Lösung. Ich hab grade nochmal nachgesehen. Bei mir gehören die *.tdb-Files auch root root und es funktioniert trotzdem, auch als Guest(nobody).

                    viele Grüße

                    Axel