• Teilen
  • Bookmark "Samba" auf del.icio.us
  • Bookmark "Samba" auf Digg
  • Bookmark "Samba" auf Reddit
  • Bookmark "Samba" auf StumbleUpon
  • Bookmark "Samba" auf Facebook
  • Bookmark "Samba" auf Twitter
  • Bookmark "Samba" auf Slashdot

Samba

Samba dient dazu Dateien freizugeben, die in gemischten Linux-/Windows- Netzwerken verfügbar sein sollen. In dieser Anleitung wird auf die Installation und Konfiguration von Samba eingegangen, wobei speziell die smb.conf erläutert wird. Es existiert ebenfalls ein Webinterface für Samba namens SWAT.

Softwarevoraussetzungen: Paketverwaltung | Texteditor
Schwierigkeitsgrad: Mittel
Ausgetestet mit folgenden Betriebssystemen: Ubuntu | Debian | teilweise auch andere Distributionen

Achtung! sudo: In dieser Anleitung verdeutlicht der Befehl sudo, dass die folgende Codezeile mit Root-Rechten ausgeführt werden muss. In normalen Ubuntu Installationen (Root-/VServer siehe Debian) kann dies durch den Befehl sudo erreicht werden.
Bei Debian wird bei der Installation ein Passwort für den Root-Benutzer festgelegt, so kann man sich entweder direkt als Root oder als „normaler“ Benutzer mit Eingabe von su als Root einloggen (Root-Passwort benötigt) → sudo bleibt dann überflüssig!

Installation

Man benötigt die Pakete samba-common, samba-common-bin und samba:

user@server:~$ sudo apt-get install samba samba-common samba-common-bin

Benutzer hinzufügen

Samba fügt die Systembenutzer nicht automatisch hinzu. Dies muss man manuell mit

user@server:~$ sudo smbpasswd -a system_benutzer                # system_benutzer durch den Namen des Systembenutzers ersetzten

erledigen. Mit dem obigen Befehl kann man später ebenfalls das Passwort ändern. Danach wird man zu einer Passworteingabe aufgefordert, dieses kann von dem Passwort des jeweiligen Systembenutzers abweichen.

Es wird ein Systembenutzer benötigt, deshalb können in Samba nicht willkürlich Benutzer hinzugefügt werden, die auf dem System nicht existieren. Einen Systembenutzer, der sich nicht in der Shell anmelden kann (kein Shell-Zugang = kein Systemzugang) eignet sich prima als „Basis“ für einen neuen Sambabenutzer und kann so angelegt werden:

user@server:~$ sudo adduser --no-create-home --disabled-login --shell /bin/false neuer_benutzer          # neuer_benutzer durch den Namen des Systembenutzers ohne Shell-Zugang ersetzten

→ Mehr zu Systembenutzern erfährt man hier

Konfiguration

Samba wird über die /etc/samba/smb.conf konfiguriert:

user@server:~$ sudo nano /etc/samba/smb.conf

Im Folgenden wird die smb.conf an einem Beispiel erklärt.

Abschnitt global

[global]
workgroup = hier kommt die Arbeitsgruppe rein
server string = hier kommt der Servername rein (frei wählbar)
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
printcap name = cups
dns proxy = No
wins support = Yes 
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
invalid users = root

Zu wins support: Falls dieser Rechner der einzige ist, der die ganze Zeit an ist sollte man wins support auf yes setzten, wenn aber ein anderer Windowsrechner länger oder genauso lang im Netzwerk erreichbar ist, sollte man wins support auf dessen IP setzen (wins support = ip_des Windows_rechners)

Drucker

# Drucker
[printers]
comment = Alle Drucker
path = /var/spool/samba
guest ok = Yes
printable = Yes
browseable = No

Hier durch werden Drucker automatisch freigegeben. Trotzdem sollte man mit SWAT, wie hier beschreiben einen so ähnlichen Code generieren:

[HP_DeskJet_940C_USB_MY1CS6826RBH_HPLIP]
comment = HP DeskJet 940C
path = /var/spool/samba
read only = No
guest ok = Yes
printable = Yes
oplocks = No
share modes = No

Standardfreigaben

[Share-name]
path = /pfad/zu/dem/freigegebenen/Ordner
write list = paul
writeable = no
guest ok = No
browseable = Yes

Diese Freigabe erscheint beim öffnen des Hosts über die Netzwerkumgegebung oder ähnlichem (dank browseable = yes). Um die Freigabe zu öffnen muss man sich einloggen (guest ok = No), wobei dann nur der Samba-Benutzer, der sich als Paul einloggt schreiben darf (write liste = paul). Die anderen Benutzer dürfen nicht schreiben (writeable = no). Bei [Share-name] wird der Name des Shares eingetragen. Der freigegebene Ordner liegt im Dateisystem in /pfad/zu/dem/freigegebenen/Ordner (path = /pfad/zu/dem/freigegebenen/Ordner).

Diese Freigabe ist vor allem für kleine private Netzwerke zu empfehlen, in denen jeder ein Benutzerkonto hat, allerdings nur wenige die Freigabe beschreiben dürfen.

evtl. Probleme

Unter Umständen kann es dabei zu Rechte Problemen kommen (Nautilus: „You don't have the permission to…“), dann einfach an die Freigabe folgenden Code anhängen:

force user = user
force group = group

user und group sollte durch den Benutzer/ die Gruppe ersetzt werden, die in dem jeweiligen Verzeichnis Schreibrechte hat.
Hier zwei Beispiele:

Verzeichnis: /home/user

force user = paul
force group = users 

Verzeichnis: /var/www

force user = www-data 
force group = www-data

Hinweis: bei Freigaben, die root gehören muss dieser Abschnitt der jew. Freigabe IMMER hinzugefügt werden und auf root verweisen:

force user = root
force group = root

Shared-Docs

[Shared-Docs]
path = /pfad/zur/freigabe
force user = paul
force group = users
read only = No
create mask = 0664
directory mask = 0775
guest ok = Yes
browseable = Yes
writeable = Yes

Diese Freigabe ist direkt sichtbar (browseable = Yes), beschreibbar (writeable = Yes read only = No), auch für unangemeldete sichtbar und beschreibbar (guest ok = Yes). Dateien werden mit den Rechten von paul und der Gruppe users erstellt (force user = paul force group = users) und mit bestimmten Rechten (create mask = 0664 directory mask = 0775).

Diese Freigabe ist wirklich für jeden sichtbar und beschreibbar und eignet sich daher perfekt für den Datenaustausch zwischen Rechnern.

minimale Standardfreigabe

[Share-name]
path = /pfad/zur/freigabe
writeable = Yes
guest ok = Yes
browseable = Yes

Diese Freigabe sieht jeder (browseable = Yes), kann jeder beschreiben (writeable = Yes) und Gäste sind erlaubt (guest ok = Yes). Wie in den vorherigen Beispielen ist /pfad/zur/freigabe der Pfad zur Freigabe und [Share-name] der Name der Freigabe.

Diese Freigabe eignet sich zum einfachen Freigeben ohne Benutzer (zum Beispiel für LAN-Partys), bei aber trotzdem beschreibbar sind. Falls man writeable = Yes auf writeable = No setzt erhält man eine Freigabe die nicht beschreibbar ist (eignet sich auch sehr gut für LAN-Partys)

Freigabe für einzelne Benutzer

[paul]
comment = paul
path = /home/paul
valid users = paul
admin users = paul
read list = paul
write list = paul
writeable = No
read only = No
browseable = No

Mit dieser Freigabe ermöglichen wir nur Paul sein Home zu sehen (browseable = No read list = paul), seine Home zu beschreiben (write list = paul writeable = No) und gestatten nur ihm den Zugang (valid users = paul).

Diese Freigabe kann zum Beispiel in Windows als Netzwerkplatten einhängen um darauf seine Backups zu spielen. Zusätzlich ist diese Freigabe wirklich nur für diesen Benutzer zu verwenden. Außerdem ermöglicht diese Freigabe auch anderen PCs, die beispielsweise als Fred eingeloggt sind das Schreiben der Freigabe durch Eingabe von /Paul und Autorisierung mit Pauls Passwort und Benutzernamen.

Freigabe des Homes

Falls man das Home des jeweiligen eingeloggten Nutzers freigeben will kann man auch ganz einfach diesen Konfigabschnitt verwenden:

[homes]
   comment = Home Directories
   browseable = no
   valid users = %S
   writable = yes
   create mode = 0600
   directory mode = 0700

Einzelne Parameter

Hier die wichtigsten Parameter für einzelne Shares:

  • [Share-name] → Name des Shares ist Share-name
  • comment = Musik → Kommentar ist Musik
  • path = /home/user/Musik → das Share liegt im Dateisystem in /home/user/Musik
  • valid users = paul → Nur Paul darf sich auf der Freigabe einloggen
  • admin users = paul → Paul ist Admin user
  • write list = paul → Nur Paul darf schreiben
  • read list = paul → Nur Paul darf lesen
  • writeable = Yes/No → Die Freigabe ist/ist nicht beschreibbar
  • browseable = Yes/No → Die Freigabe erschient beim öffnen des Hosts
  • guest ok = Yes/No → Gastzugang ist erlaubt/nicht eraubt
  • read only = Yes/No → es darf nur/nicht nur gelesen werden
  • force user = paul → neue Dateien werden mit den rechten des Benutzers Paul erstellt
  • force group = users → neue Dateien werden mit den rechten der Gruppe users erstellt
  • create mode = 0600 → Dateien werden mit den Rechten 0600 erstellt
  • directory mode = 0700 → Ordner werden mit den Rechten 0700 erstellt

Samba neustarten

Nach jeder Änderung sollte man Samba mit dem eigenen init Skript neustarten:

user@server:~$ sudo service samba restart



chrisge 2015/03/31 20:36

Diskussion

IckeGuest, 2015/07/08 14:34

bitte Standard

Christoph Winklerchrisge, 2015/07/08 18:43

korrigiert ;-)

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
JMEVD
 
  • Teilen
  • Bookmark "Samba" auf del.icio.us
  • Bookmark "Samba" auf Digg
  • Bookmark "Samba" auf Reddit
  • Bookmark "Samba" auf StumbleUpon
  • Bookmark "Samba" auf Facebook
  • Bookmark "Samba" auf Twitter
  • Bookmark "Samba" auf Slashdot
Sonstiges
Drucken/exportieren
Archiv

Archivierter Inhalt der alten Seite