Inhaltsverzeichnis
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
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 2018/08/04 18:23