Samba

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Installation)
 
(21 dazwischenliegende Versionen von 13 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Einleitung==
 
==Einleitung==
Mit [[Samba]] kann man Verzeichnisse eines Rechners (z.B. des VDR) als Netzwerkfreigaben zu Verfügung stellen. Wer beispielsweise mit seinem Windows-Rechner an die Daten des VDR kommen möchte, der ist hier richtig.
+
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.
 
+
==Installation==
+
===Source===
+
<pre>
+
cd $SOURCEDIR
+
tar xzvf samba-latest.tar.bz2
+
mkdir -p /etc/samba \
+
        /var/lock/samba
+
cd /samba-<VERSION>/source
+
./configure --prefix=/usr/local \
+
            --bindir=/usr/local/bin \
+
            --sbindir=/usr/local/sbin \
+
            --libdir=/etc/samba \
+
            --sysconfdir=/etc/samba \
+
            --with-smbmount
+
make
+
make install
+
</pre>
+
 
+
===[[Crux]]===
+
prt-get depinst samba
+
 
+
===[[Debian]]===
+
apt-get install samba
+
 
+
===[[Gentoo]]===
+
emerge samba
+
 
+
===[[SuSE]]===
+
yast -i ???????????????????????
+
  
 
==Konfigurationsdatei==
 
==Konfigurationsdatei==
Zeile 114: Zeile 84:
  
 
Mit  
 
Mit  
<pre> smbclient -L localhost </pre>
+
<pre> smbclient -L localhost -U user</pre>
 
kann man erstmal nachsehen, ob Samba richtig arbeitet.
 
kann man erstmal nachsehen, ob Samba richtig arbeitet.
  
Zeile 122: Zeile 92:
 
/etc/init.d/samba restart
 
/etc/init.d/samba restart
 
</pre>
 
</pre>
 +
 +
 +
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!!)
 +
 +
{{Box Datei| /etc/samba/smb.conf |
 +
<pre>
 +
[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
 +
</pre>
 +
}}
  
 
==Mounten von Shares==
 
==Mounten von Shares==
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:
+
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):
 
<pre>
 
<pre>
mount smbfs -o username=user,passwd=pw,uid=user_id,auto,rw,fmask=777,dmask=777 QUELLE ZIEL
+
mount -t smbfs -o username=user,passwd=pw,auto,rw,fmask=777,dmask=777 QUELLE ZIEL
 
</pre>
 
</pre>
"user_id" müsst ihr natürlich mit der entsprechenden user id des gewählten benutzer ersetzen. Die bekommt ihr in dem ihr auf dem Server
+
 
 +
Wenn mit dem oben genannten Befehl Probleme à la "smb_proc_readdir_long" habt, dann versucht es mal mit cifs:
 
<pre>
 
<pre>
id user
+
mount -t cifs -o username=user,password=pw,rw QUELLE ZIEL
 
</pre>
 
</pre>
ausführt. Wenn mit dem oben genannten Befehl probleme auftreten versucht mal das cifs filesystem. dann müssen aber die optionen dmask und fmask weg gelassen werden.
 
  
Wenn ihr wollt das bei dem booten der Share automatisch eingebunden wird müsst ihr einen Eintrag in /etc/fstab machen. Das Schema ist hier etwas anders:
+
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:
 
<pre>
 
<pre>
QUELLE ZIEL smbfs username=user,passwd=pw,uid=user_id,auto,rw,fmask=777,dmask=777 0 0
+
QUELLE ZIEL smbfs username=user,passwd=pw,auto,rw,fmask=777,dmask=777 0 0
 
</pre>
 
</pre>
 +
 +
oder mit cifs:
 +
<pre>
 +
QUELLE ZIEL cifs noauto,credentials=/etc/.fbcredentials 0 0
 +
</pre>
 +
 +
/etc/.sambacredentials
 +
<pre>
 +
username=NAME
 +
password=PASSWORT
 +
</pre>
 +
 +
Hinweis: smbfs ist veraltet, besser ist es cifs zu benutzen.
  
 
==Probleme==
 
==Probleme==
Zeile 146: Zeile 162:
 
[global]
 
[global]
 
client code page = 850
 
client code page = 850
character set = ISO8859-15 #(in einigen Samba Versionen heisst es: unix character set = ISO8859-15)
+
character set = ISO8859-15 #(in einigen Samba Versionen heißt es: unix character set = ISO8859-15)
 
</pre>
 
</pre>
Bei Debian (Samba Version 3.0.14a-Debian):
+
* Bei Debian (Samba Version 3.0.14a-Debian):
 
<pre>
 
<pre>
 
[global]
 
[global]
 
unix charset = ISO8859-15
 
unix charset = ISO8859-15
 
dos charset = 850
 
dos charset = 850
 +
#oder
 +
#unix charset = CP932 / eucJP-ms / UTF-8
 +
#dos charset = CP932
 
</pre>
 
</pre>
* Ü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
+
* Wer eine Linux-Samba-Share auf einem andere Samba mit smbmount einbinden möchte
 +
<pre>
 +
[global]
 +
unix charset = CP850</pre>
 +
 
 +
 
 +
Ü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
  
 
==Links==
 
==Links==

Aktuelle Version vom 1. September 2013, 13:33 Uhr

Inhaltsverzeichnis

[Bearbeiten] 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.

[Bearbeiten] Konfigurationsdatei

Die folgenden Zeilen müssen in die Datei samba.conf eingetragen werden. Der Wert "Path" muss an die eigenen Pfade angepasst werden!

Datei
/etc/samba/smb.conf
[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:

Datei
/etc/samba/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!!)

Datei
/etc/samba/smb.conf
[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


[Bearbeiten] Mounten von Shares

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.

[Bearbeiten] 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

[Bearbeiten] Links

  1. Samba Homepage
In anderen Sprachen