Benutzer-Werkzeuge

Action disabled: source

Samba installieren

Now let's Samba

Nachdem die Vorarbeiten erledigt sind wenden wir uns Samba zu. Der Hauptgrund für mich Samba via ipkg zu installieren ist es, dass sich der eingebaute Samba Server nicht nach meinem Geschmack konfigurieren lässt. So habe ich es zum Beispiel nie geschafft die Homeverzeichnisse der User auf der DS für den jeweiligen User als Share freizugeben. Und ausserdem ist es so das manuelle Änderungen an der Konfig-Datei des Systemsambas beim Neustart wieder überschrieben werden. Installation

Voraussetzungen

  • ipkg für die jeweilige Prozessorarchitektur ist installiert
  • Zugriff auf die Shell Konsole via telnet oder ssh als root
  • Texteditor mit korrekten UNIX-Zeilenendzeichen (\n und nicht \r\n): z.B. vi oder nano

Installation

Zur Auswahl stehen die beiden folgenden Versionen

$ ipkg list samba*
samba - 3.2.1-1 - Samba suite provides file and print services to SMB/CIFS clients.
samba2 - 2.2.12-1 - Lightweight Samba suite provides file and print services to SMB/CIFS clients. Successfully terminated.

Die Installation ist sehr schnell erledigt

$ ipkg install samba
//oder
$ ipkg install samba2

Ich verwende immer die 3-er Version. ipkg beginnt mit dem Runterladen der benötigten Pakete und anschliessend mit der Installation. Das kann ein Weilchen dauern. Guter Zeitpunkt einen Kaffee/Tee zu machen :-)

Konfiguration

Nachdem die Installation durch ist, geht es an die Konfiguration des Samba Servers. Die verantwortliche Datei hierzu liegt unter /opt/etc/samba/smb.conf. Diese Datei ist in einen globalen Teil und einen per-Share Teil unterteilt. Logischerweise gelten Einstellungen im globalen Teil für den ganzen Samba Server.

Globaler Bereich

[globals]
workgroup = HOME
server string = Lets SAMBA
encrypt passwords = True
security = user
smb passwd file = /opt/etc/samba/smbpasswd
log file = /opt/var/samba/log.%m
socket options = IPTOS_LOWDELAY TCP_NODELAY
domain master = Yes
local master = Yes
preferred master = Yes
wins support = yes
os level = 65
dns proxy = No
name resolve order = wins lmhosts host bcast
bind interfaces only = True
interfaces = eth0 192.168.1.100 lo
debug level = 0
directory mask = 0755
guest ok = yes
guest account = guest
force directory mode=771
force create mode=660
create mask=771
log level = 0
socket options = TCP_NODELAY IPTOS_LOWDELAY
read raw = yes
write raw = yes
oplocks = yes
max xmit = 65535
dead time = 15
getwd cache = yes

So sieht bei mir der globale Bereich aus. Anpassen müsst Ihr v.a. den Arbeitsgruppennamen und die Einstellungen unter interfaces. Wichtig ist auch noch, dass ihr darauf achtet, wenn ihr auch Gästen Zugriff erlauben wollt, dass im globalen Bereich guest ok = yes und guest account = guest gesetzt sind. Ihr könnt immer noch auf den einzelnen Shares den Gast-Zugriff verbieten.

Per-Share Bereich

In diesem Bereich legt ihr die einzelnen Freigaben und deren Einstellungen fest. In eckigen Klammern steht dabei der Share Name

[public]
valid users=franz,susi,susanne,guest
comment="Blabla"
path=/volume1/public
guest ok=yes
browseable=yes
read list= @Home,guest
writeable=yes
write list=@Home,root,admin

So könnte eine typische public Share mit Gastzugriff ausschauen. Die User franz, susi, susanne und guest sind erlaubte User für die Share. Path dürfte selbsterklärend sein, gleich wie comment ;-) guest ok erlaubt nochmal explizit den Gastzugriff, browsable sorgt dafür, dass die Share sichtbar ist. Die read list gibt nochmals die Benutzer an, die die Share lesen dürfen. writeable erlaubt grundsätzlich den Schreibzugriff und write list legt fest wer schreiben darf. Mit @ werden Gruppen angegeben (z.B. gehören franz, susi und susanne zur Gruppe Home)

Homeverzeichnisse

Eine spezielle Share ist [homes] damit werden die Home Verzeichnisse der jeweiligen User als Share freigegeben

[homes]
path=/volume1/homes/%S
browsable = no
guest ok = no
valid users = %S
writeable = yes
write list = %S

Nach erfolgreicher Authentifizierung wird die Variable %S mit dem Benutzernamen des Users belegt. Somit ist sichergestellt, dass nur der jeweils angemeldete User sein Home-Verzeichnis sehen kann.

Benutzer einrichten

Samba muss eine eigene Datenbank mit den Usernamen und Passworten unterhalten und kann nicht direkt auf die Linux Auth zugreifen. Dazu müssen alle Benutzer mit ihren jeweiligen Passworten auch als smb User angelegt werden. Dazu dient smbpasswd

$ smbpasswd -a franz

dann müsst ihr zweimal das Passwort eingeben.

Wenn User franz nicht als Linux User in /etc/passwd eingetragen ist, dann kann er auch nicht als SMB User angelegt werden In diesem Falle gibt es nach Eingabe der Passworte von smbpasswd eine Meldung wie diese

Failed to modify password entry for user franz

In diesem Fall müsst ihr den Benutzer erst auf der DS anlegen (am einfchsten via den DS-Manager)

Samba testen

Bevor ihr den Samba Server startet, solltet ihr smb.conf noch auf Fehler prüfen. Dazu gibt es testparm

$ testparm

prüft die Datei auf Fehler und sollte etwas wie

Loaded services file OK.

ausgeben. Wenn ihr diese Meldung seht dann könnt ihr Euch daran machen den alten Samba Server abzuschiessen. Zuvor solltet ihr aber noch kurz das Startscript des neuen Samba Server anschauen. Dieses liegt unter /opt/etc/init.d/Ssamba.sh ( steht für zwei beliebige Zahlen). Öffnet diese Datei im Editor und stellt sicher dass Samba aktviert ist und die Pfade stimmen

$ nano /opt/etc/init.d/S08samba.sh
# set samba_active=1 to activate samba
samba_active=1

[ 1 = $samba_active ] || exit 0

if [ -n "`pidof smbd`" ] ; then
echo "Stopping smbd:"
killall smbd
fi

if [ -n "`pidof nmbd`" ] ; then
echo "Stopping nmbd:"
killall nmbd
fi

sleep 2

echo "Starting nmbd:"
/opt/sbin/nmbd -D --configfile=/opt/etc/samba/smb.conf
echo "Starting smbd:"
/opt/sbin/smbd -D --configfile=/opt/etc/samba/smb.conf

Setzt samba_active=1 und kontrolliert den Pfad auf /opt/sbin und die Übergabe des korrekten Pfades der Konfigurationsdatei (smb.conf) Nach gemachten Änderungen die Datei speichern und gleich aufrufen

Samba starten

$ sh /opt/etc/init.d/S08samba.sh

und mit

$ ps | grep mbd
18215 root 1848 S /opt/sbin/nmbd -D --configfile=/opt/etc/samba/smb.conf
18218 root 2628 S /opt/sbin/smbd -D --configfile=/opt/etc/samba/smb.conf
18221 root 1036 S /opt/sbin/smbd -D --configfile=/opt/etc/samba/smb.conf
18222 root 3628 S /opt/sbin/smbd -D --configfile=/opt/etc/samba/smb.conf
20469 root 216 S grep mbd

prüfen, dass sowohl der smbd als auch der nmbd mit dem Config File läuft. Es kann sein, dass die Konsole den Befehl ps auf 80 Zeichen beschneidet und daher der Pfad zu smb.conf nicht komplett angezeigt wird. Das macht aber nix, denn übergeben wurde er korrekt ;-) Wenn die Dämons laufen, dann kann man gleich probieren die DS in der Netzwerkumgebung zu finden. Es ist übrigens völlig normal, dass smbd gleich dreimal läuft!

Wenn der Zugriff auf die DS klappt, dann solltet ihr noch das Startscript des Original Samba Servers umbenennen

$ mv /usr/syno/etc.defaults/rc.d/S**samba.sh /usr/syno/etc.defaults/rc.d/W**samba.old

Sonst wird Samba zweimal gestartet. .

Melden Sie sich an, um einen Kommentar zu erstellen.

Seiten-Werkzeuge