Samba

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(/etc/samba/smb.conf)
(Installation)
 
(50 dazwischenliegende Versionen von 28 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==
+
==Konfigurationsdatei==
<pre>
+
 
cd $SOURCEDIR
+
Die folgenden Zeilen müssen in die Datei samba.conf eingetragen werden. Der Wert "Path" muss an die eigenen Pfade angepasst werden!
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>
+
  
==/etc/samba/smb.conf==
+
{{Box Datei| /etc/samba/smb.conf |
 
<pre>
 
<pre>
 
[global]
 
[global]
Zeile 41: Zeile 28:
 
         create mask = 0755
 
         create mask = 0755
 
</pre>
 
</pre>
 +
}}
  
 
Weitere sinnvolle Ergänzungen an der smb.conf:
 
Weitere sinnvolle Ergänzungen an der smb.conf:
  
 +
{{Box Datei| /etc/samba/smb.conf |
 
<pre>
 
<pre>
 
 
[root]
 
[root]
comment = Administration
+
        comment = Administration
path = /
+
        path = /
writeable = yes
+
        writeable = yes
public = yes
+
        public = yes
create mode = 0755
+
        create mode = 0755
#veto files = /.*/.?/
+
        #veto files = /.*/.?/
force user = root
+
        force user = root
force group = root
+
        force group = root
 
+
 
[media]
 
[media]
comment = Media (Mplayer, MP3 usw)
+
        comment = Media (Mplayer, MP3 usw)
path = /media
+
        path = /media
writeable = yes
+
        writeable = yes
public = yes
+
        public = yes
create mode = 0755
+
        create mode = 0755
force user = root
+
        force user = root
force group = root
+
        force group = root
 
</pre>
 
</pre>
 +
}}
 +
 +
Jetzt die neue smb.conf testen, ob alles i.O. ist:
 +
<pre>
 +
testparm /etc/samba/smb.conf
 +
</pre>
 +
 +
So jetzt noch einen Samba-User (user gegen Name austauschen!) anlegen:
 +
 +
<pre>
 +
adduser user
 +
</pre>
 +
 +
Die User müssen in der Datei /etc/passwd des Systems existieren bzw. neu eingetragen werden:
 +
 +
<pre>
 +
smbpasswd -a user
 +
</pre>
 +
 +
Jetzt erstmal Samba von Hand neu starten.
 +
 +
<pre>
 +
smbd
 +
nmbd
 +
</pre>
 +
oder mit:
 +
 +
<pre>
 +
/etc/init.d/samba restart
 +
</pre>
 +
 +
Mit
 +
<pre> smbclient -L localhost -U user</pre>
 +
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.
 +
 +
<pre>
 +
/etc/init.d/samba restart
 +
</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==
 +
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>
 +
mount -t smbfs -o username=user,passwd=pw,auto,rw,fmask=777,dmask=777 QUELLE ZIEL
 +
</pre>
 +
 +
Wenn mit dem oben genannten Befehl Probleme à la "smb_proc_readdir_long" habt, dann versucht es mal mit cifs:
 +
<pre>
 +
mount -t cifs -o username=user,password=pw,rw QUELLE ZIEL
 +
</pre>
 +
 +
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>
 +
QUELLE ZIEL smbfs username=user,passwd=pw,auto,rw,fmask=777,dmask=777 0 0
 +
</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==
 
* 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 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.
 +
<pre>
 +
[global]
 +
client code page = 850
 +
character set = ISO8859-15 #(in einigen Samba Versionen heißt es: unix character set = ISO8859-15)
 +
</pre>
 +
* Bei Debian (Samba Version 3.0.14a-Debian):
 +
<pre>
 +
[global]
 +
unix charset = ISO8859-15
 +
dos charset = 850
 +
#oder
 +
#unix charset = CP932 / eucJP-ms / UTF-8
 +
#dos charset = CP932
 +
</pre>
 +
* 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==
{|
+
# [http://us1.samba.org/samba Samba Homepage]
| [1]
+
 
| http://us1.samba.org/samba
+
[[Kategorie:Software]]
|
+
[[ru:Samba]]
|}
+

Aktuelle Version vom 1. September 2013, 12: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