[Linux] Schreibberechtigung nach einem Mount per smbfs/cifs

  • Problem:
    Auf meinem Qnap TS109pro ist Samba Version 3.0.23d installiert. Nach einem mount per smbfs auf meinen Linux-Clients hatte ich trotz erfolgreicher Authentifikation und vorliegender Schreibrechte auf der Datei keinen schreibenden Zugriff.


    Lösung:
    Das Problem konnte durch eine Modifikation der smb.conf behoben werden.


    Code
    #       map read only = yes         map read only = permissions


    Zur Erläuterung ein Auszug aus der manpage:


    Code
    This is a new parameter introduced in Samba version 3.0.21.      Permissions - The read only DOS attribute is mapped to the effective permissions of the connecting user, as evaluated by smbd(8) by reading the unix permissions and POSIX ACL (if present). If the connecting user does not have permission to modify the file, the read only attribute is reported as being set on the file.


    Da auch die DOS-Bits gesetzt sind:


    Code
    map archive = yes                                                                                              map system = yes                                                                                               map hidden = yes


    die Linux-Dateien ausführbar machen, was bei einer Datei-Synchronisation etwa mit unison zu Fehlermeldungen führt, ist es hilfreich, sie mit dem Parameter fmask=644 auszumaskieren


    Code
    # mount -t smbfs //server/share /mnt/ -o username=user,password=xxxx,uid=client,fmask=644
  • Hi zdia ;)
    Zuerst einmal sehr tolles Avatar. :thumb:
    Aber wenn Du doch schon Linux Clients hast, warum nutzt Du dann nicht NFS? Hat doch auch so seine Vorteile. ;)

  • Ja, ich habe mir die Pro-Version extra wegen des NFS-Supports gekauft, aber der ist unbefriedigend wegen der uid-Problematik bei schreibendem Zugriff.


    Hierzu habe ich schon einmal einen Beitrag im englischsprachigen Qnap-Forum erstellt, habe aber bisher noch keine Antwort erhalten, vgl.


    Code
    NFS file owner/permission issues: http://forum.qnap.com/viewtopic.php?f=35&t=6564&start=0


    Qnaps erster User hat die uid=500, die gängigen Linux-Distributionen beginnen bei 1000. Extra für den Qnap jetzt alle meine UIDs auf den Clients auf den Wert 500 umzustellen, ist mir zuviel unprofessionelles Gefrickel mit unvorhersehbaren Seiteneffekten.


    Könnte man im Qnap linuxmäßig in der exportfs mit der Option anonuid arbeiten, gäbe es eine saubere Lösung, die wird aber immer von dem Html-Interface der Web-Administration überschrieben!


    Qnaps allein mögliche Lösung lautet:


    Code
    "/share/HDA_DATA/dia" 192.168.178.25(rw,async,no_root_squash)


    und die lässt nur die Lösung zu, dass ich als root zugreife. Die Option no_root_squash ist eigentlich eine ganz gefährliche, die normalerweise in den Linux Distris deaktiviert ist. Die Problematik mit den vielen UIDs könnte eigentlich nur NIS lösen, da gibt es aber, glaube ich, keine ipkg für den Qnap.


    Die Qnap-NAS wollte ich eigentlich als zentralen Fileserver für alle meine Linux-Clients einsetzen, die ich mit unison synchronisieren wollte, aber von diesem Ziel bin ich noch weit entfernt :(


    Auf meinem Zenwalk 6.0-Client ist nur noch der cifs-Zugriff möglich, smbfs ist nicht mehr im Kernel enthalten, mount.cifs aber verwehrt unverständlicherweise Schreibzugriffe, auch openOffice erlaubt kein Schreiben auf cifs-gemountete Verzeichnisse, da ist im Moment ein großer Wurm am Wühlen...


    Ich werde doch wohl reumütig zu nfs zurückkehren...