samba

samba

de > configuration > server > fileserver > samba

Grundsätzliches

Worum es hier geht ist unter verschiedenen Namen bekannt: Windows freigabe, Samba, SMB und CIFS sind gute Suchbegriffe, wenn man sich ins Thema hinein liest.

smbtree # lokale freigaben anzeigen
smbtree  # remote freigaben anzeigen

Wenn die Ausgabe von smbtree servername //servername/var/www/html liefert, kann dieser Pfad in die fstab des Netzwerkrechners so übernommen werden, um den entfernten Ordner in den lokalen Ordner /var/www/html zu mounten:

//servername/var/www/html /var/www/html cifs noauto,_netdev,dev,exec,acl,suid,user_xattr,noperm,comment=systemd.automount 0 0

Diese Zeile benutzt den Automounter von SystemD.

Server

Die Dienste auf dem Server heissen smb und nmb, wobei letzterer bei geänderten Freigaben informiert werden muß, was ich bislang mit systemctl restart nmb gemacht habe.

systemctl restart smb
systemctl restart nmb
systemctl enable smb
systemctl enable nmb

usershares

Ein grafisches Programm Namens system-config-samba sollte nicht mehr verwendet werden, denn es unterstützt das neue Interface noch nicht und schreibt einem seine Konfigurationsdatei /etc/samba/smb.conf. Ausserdem geht es inzwischen besser: Das relativ neue Interface, um Freigaben auf userlevel zu ermöglichen wird über den Befehl net aufgerufen, der so funktioniert:

net usershare list
net usershare add $HOME/Public
net usershare info
net usershare delete $HOME/Public

Dazu ist es notwendig den Nutzer in eine Benutzergruppe aufzunehmen, die net auch verwendet. Normalerweise scheint diese Gruppe sambashare zu heißen. Bislang weist für mich alles darauf hin, dass dieser Name (bislang) hartcodiert ist. Als Mitglied dieser Gruppe funktionieren dann auch diverse Dateimanager-Plugins, die freigaben per Rechtsklick ermöglichen. Zur Funktionsweise sei noch darauf hingewiesen, dass es zu jedem so freigegebenen Ordner eine Konfigurationsdatei unter /var/lib/samba/usershares/ gibt. Da auch ZFS bei der Verwendung von smbshare=on diese Art der Freigabe verwendet aber bislang einige Optionen von Samba nicht unterstützt, kann man diese Dateien auch im Editor öffnen.

selinux

In der man-page samba_selinux sucht man leider vergeblich nach einem Hinweis darauf, wie man samba und nfs gleichzeitig den Zugriff auf ein Dateisystem gewähren kann. Daher dieser Blogeintrag. Einen Hinweis liefert nfs_selinux, in dem der security-context public_content_t erwähnt wird. Dieser lässt sich auch in der /etc/fstab verwenden, zum Beispiel:

/dev/sdb1 /mnt/ ext4 defaults,context="system_u:object_r:public_content_rw_t:s0" 0 0

...wobei doppelte Anführungsstriche funktionieren, einfache aber nicht. Um auch Schreibzugriff zu haben musste ich zudem noch anonymes Schreiben erlauben:

setsebool -P allow_smbd_anon_write=1
top