Samba
Inhaltsverzeichnis |
Einleitung
Mit Samba kann man Verzeichnisse eines Rechners (z. B. die des VDRs) als Netzwerkfreigaben zu Verfügung stellen. Wer beispielsweise mit seinem Windows-Rechner an die Daten des VDR kommen möchte, der ist hier richtig.
Konfigurationsdatei
Die folgenden Zeilen müssen in die Datei samba.conf eingetragen werden. Der Wert "Path" muss an die eigenen Pfade angepasst werden!
[global] workgroup = WORKGROUP encrypt passwords = yes security = user getwd cache = yes [video] path = /video comment = /video browseable = yes read only = no directory mask = 0775 create mask = 0755 [mp3] path = /mp3 comment = /mp3 browseable = yes read only = no directory mask = 0775 create mask = 0755
Weitere sinnvolle Ergänzungen an der smb.conf:
[root] comment = Administration path = / writeable = yes public = yes create mode = 0755 #veto files = /.*/.?/ force user = root force group = root [media] comment = Media (Mplayer, MP3 usw) path = /media writeable = yes public = yes create mode = 0755 force user = root force group = root
Jetzt die neue smb.conf testen, ob alles i.O. ist:
testparm /etc/samba/smb.conf
So jetzt noch einen Samba-User (user gegen Name austauschen!) anlegen:
adduser user
Die User müssen in der Datei /etc/passwd des Systems existieren bzw. neu eingetragen werden:
smbpasswd -a user
Jetzt erstmal Samba von Hand neu starten.
smbd nmbd
oder mit:
/etc/init.d/samba restart
Mit
smbclient -L localhost -U user
kann man erstmal nachsehen, ob Samba richtig arbeitet.
Falls man die Änderungen gemacht hat, während Samba schon lief, sollte Samba nun neu gestartet werden, damit er die Änderungen übernimmt.
/etc/init.d/samba restart
Hier eine Beispielkonfiguration, die es _jedem Nutzer_ im LAN ohne Passwortabfrage gestattet, auf den Share lesend und schreibend zugreifen zu können. (Achtung!! Nur für sichere Heimnetzwerke!!)
[global] unix charset = iso8859-15 workgroup = "Arbeitsgruppe.Home" server string = %h security = SHARE obey pam restrictions = Yes syslog = 0 log file = /var/log/samba/log.%m max log size = 500 os level = 33 dns proxy = No ldap ssl = no panic action = /usr/share/samba/panic-action %d invalid users = root [video] comment = VDR-Aufzeichnungen path = /var/lib/video.00 force user = vdr read only = No acl check permissions = No create mask = 0777 force create mode = 0777 force security mode = 0777 force directory mode = 0777 guest ok = Yes
Ihr müsst als erstes das Filesystem von Samba installieren, mit dem Namen smbfs. Unter Debian z. B. einfach "apt-get install smbfs". Wenn ihr das habt, könnt ihr mit folgendem Befehl ein Share auf eurem Client mounten (QUELLE hat die Form //rechnername/share oder //ipaddresse/share, wobei share der Freigabename in [] in der smb.conf Datei ist):
mount -t smbfs -o username=user,passwd=pw,auto,rw,fmask=777,dmask=777 QUELLE ZIEL
Wenn mit dem oben genannten Befehl Probleme à la "smb_proc_readdir_long" habt, dann versucht es mal mit cifs:
mount -t cifs -o username=user,password=pw,rw QUELLE ZIEL
Wenn ihr wollt, dass beim Booten der Share automatisch eingebunden wird, müsst ihr einen Eintrag in /etc/fstab machen. Das Schema ist hier etwas anders:
QUELLE ZIEL smbfs username=user,passwd=pw,auto,rw,fmask=777,dmask=777 0 0
oder mit cifs:
QUELLE ZIEL cifs noauto,credentials=/etc/.fbcredentials 0 0
/etc/.sambacredentials
username=NAME password=PASSWORT
Hinweis: smbfs ist veraltet, besser ist es cifs zu benutzen.
Probleme
- Wenn beim Zugriff eines WinXP PCs auf eine Sambafreigabe der PC einige Minuten einfriert, sollte der WebClient-Dienst in den Windows-Diensten abgeschaltet werden.
- Wenn Umlaute nicht korrekt dargestellt werden, könnte das an einem falschen Zeichensatz liegen. Man sollte folgende Einträge prüfen oder setzen.
[global] client code page = 850 character set = ISO8859-15 #(in einigen Samba Versionen heißt es: unix character set = ISO8859-15)
- Bei Debian (Samba Version 3.0.14a-Debian):
[global] unix charset = ISO8859-15 dos charset = 850 #oder #unix charset = CP932 / eucJP-ms / UTF-8 #dos charset = CP932
- Wer eine Linux-Samba-Share auf einem andere Samba mit smbmount einbinden möchte
[global] unix charset = CP850
Überprüfen sollte man auch die Dateirechte im Linux-System und gegebenenfalls mit chmod anpassen. Also z.B. um vom Windowsrechner auch Schreibrechte zu haben, muss der (Samba-)Benutzer Schreibrecht im entsprechenden Verzeichnis unter Linux haben. Dazu chmod -R u+w /verzeichnis und chown benutzername /verzeichnis