Skip to content

Commit 0b26c00

Browse files
committed
Beitrag: Dateifreigaben mit Samba
1 parent e99311b commit 0b26c00

File tree

2 files changed

+166
-0
lines changed

2 files changed

+166
-0
lines changed

posts/dateifreigaben-mit-samba.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
title: Dateifreigaben mit Samba
3+
author:
4+
name: Peter Müller
5+
link: https://crycode.de
6+
date: 2016-06-27 12:00:00
7+
updated: 2024-05-02 16:48:12
8+
categories:
9+
- [Software]
10+
- [Linux]
11+
- [Netzwerk]
12+
tags:
13+
- Dateisystem
14+
- Linux
15+
- Netzwerk
16+
- Raspberry Pi
17+
- Samba
18+
- Server
19+
abbr:
20+
CUPS: Common Unix Printing System
21+
---
22+
23+
*Samba* ermöglicht es Verzeichnisse auf einem Linux-Rechner freizugeben, sodass auf diese von anderen Computern im lokalen Netzwerk aus zugegriffen werden kann.
24+
25+
Durch den Samba-Server und entsprechende Freigaben wird beispielsweise ein Raspberry Pi zu einem NAS (Network Attached Storage, engl. netzgebundener Speicher).
26+
27+
<!-- more -->
28+
29+
<!-- toc Inhalt -->
30+
31+
## Installation
32+
33+
Installiert wird Samba ganz einfach über die Paketverwaltung:
34+
35+
```sh Installation von Samba
36+
sudo apt update
37+
sudo apt install samba samba-common-bin
38+
```
39+
40+
Das wars auch schon. 🙂
41+
42+
## Konfiguration
43+
44+
Die Konfiguration von Samba erfolgt in der Datei `/etc/samba/smb.conf`.
45+
46+
Zusätzlich zu den Einstellungen müssen noch die entsprechenden Samba-Benutzer angelegt werden. Dazu aber im nächsten Abschnitt mehr.
47+
Den gesamten oberen Teil der Konfiguration können wir so lassen.
48+
49+
Den unteren Teil passen wir an, indem wir den `[homes]`-Bereich auskommentieren und unsere eigenen Freigaben ganz unten hinzufügen. Wenn wir {% abbr CUPS %} für die Druckverwaltung verwenden, dann passen wir den Eintrag `path` im Bereich `[print$]` dementsprechend an.
50+
51+
Der untere Teil der `smb.conf` könnte dann Beispielsweise so aussehen:
52+
53+
{% codefile ini smb.conf Samba Konfigurationsbeispiel &#47;etc/samba/smb.conf %}
54+
55+
Dabei erstellen wir eine Freigabe namens *Austausch* für das Verzeichnis `/var/daten/austausch/`. Auf diese Freigabe dürfen die Benutzer *peter*, *kristin* und *siegbert* zugreifen und Gäste sind auch erlaubt. Die Anweisung `force user = pi` sorgt dafür, dass im Dateisystem die Dateien und Ordner unabhängig vom Samba-Benutzer dem System-Benutzer *pi* gehören.
56+
57+
Außerdem erstellen wir eine Freigabe mit dem Namen *Fotos* für `/var/daten/fotos/`, auf die nur die Samba-Benutzer *peter* und *kristin* Zugriff haben.
58+
59+
Nachdem wir die Konfiguration angepasst haben müssen wir den Samba-Server neu starten, damit die Änderungen übernommen werden.
60+
61+
```sh Samba-Server neu starten
62+
sudo systemctl restart smbd
63+
```
64+
65+
## Samba-Benutzer
66+
67+
Damit die Freigabe funktioniert, müssen wir noch die entsprechenden Samba-Benutzer anlegen.
68+
69+
Für jeden Samba-Benutzer muss auch auf dem System ein Benutzer vorhanden sein. Diesen System-Benutzer können wir wie folgt anlegen, wobei wir ihm keine weitere Rechte einräumen, da er ja nur für Samba benötigt wird. Die Nachfragen nach *Vollständer Name* etc. können dabei einfach durch drücken der Enter-Taste übersprungen werden.
70+
71+
```sh Systembenutzer anlegen
72+
sudo adduser --no-create-home --disabled-login --shell /bin/false <benutzername>
73+
```
74+
75+
Ist der System-Benutzer vorhanden beziehungsweise neu angelegt, können wir mittels `smbpasswd` zu einem Samba-Benutzer machen und dabei sein Samba-Passwort festlegen.
76+
77+
```sh Samba-Benutzer zu einem System-Benutzer anlegen und Passwort setzen
78+
sudo smbpasswd -a <benutzername>
79+
```
80+
81+
Möchten wir nur das Passwort für einen bestehenden Samba-Benutzer ändern lassen wir einfach das `-a` weg.
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#======================= Share Definitions =======================
2+
3+
;[homes]
4+
; comment = Home Directories
5+
; browseable = no
6+
7+
# By default, the home directories are exported read-only. Change the
8+
# next parameter to 'no' if you want to be able to write to them.
9+
; read only = yes
10+
11+
# File creation mask is set to 0700 for security reasons. If you want to
12+
# create files with group=rw permissions, set next parameter to 0775.
13+
; create mask = 0700
14+
15+
# Directory creation mask is set to 0700 for security reasons. If you want to
16+
# create dirs. with group=rw permissions, set next parameter to 0775.
17+
; directory mask = 0700
18+
19+
# By default, \\server\username shares can be connected to by anyone
20+
# with access to the samba server.
21+
# The following parameter makes sure that only "username" can connect
22+
# to \\server\username
23+
# This might need tweaking when using external authentication schemes
24+
; valid users = %S
25+
26+
# Un-comment the following and create the netlogon directory for Domain Logons
27+
# (you need to configure Samba to act as a domain controller too.)
28+
;[netlogon]
29+
; comment = Network Logon Service
30+
; path = /home/samba/netlogon
31+
; guest ok = yes
32+
; read only = yes
33+
34+
# Un-comment the following and create the profiles directory to store
35+
# users profiles (see the "logon path" option above)
36+
# (you need to configure Samba to act as a domain controller too.)
37+
# The path below should be writable by all users so that their
38+
# profile directory may be created the first time they log on
39+
;[profiles]
40+
; comment = Users profiles
41+
; path = /home/samba/profiles
42+
; guest ok = no
43+
; browseable = no
44+
; create mask = 0600
45+
; directory mask = 0700
46+
47+
[printers]
48+
comment = All Printers
49+
browseable = no
50+
path = /var/spool/samba
51+
printable = yes
52+
guest ok = yes
53+
read only = yes
54+
create mask = 0700
55+
56+
# Windows clients look for this share name as a source of downloadable
57+
# printer drivers
58+
[print$]
59+
comment = Printer Drivers
60+
; path = /var/lib/samba/printers
61+
path = /usr/share/cups/drivers
62+
browseable = yes
63+
read only = yes
64+
guest ok = no
65+
# Uncomment to allow remote administration of Windows print drivers.
66+
# You may need to replace 'lpadmin' with the name of the group your
67+
# admin users are members of.
68+
# Please note that you also need to set appropriate Unix permissions
69+
# to the drivers directory for these users to have write rights in it
70+
; write list = root, @lpadmin
71+
72+
[Austausch]
73+
comment = Datenaustausch
74+
path = /var/daten/austausch/
75+
writable = yes
76+
force user = pi
77+
guest ok = yes
78+
valid users = peter,kristin,siegbert
79+
80+
[Fotos]
81+
comment = Fotos
82+
path = /var/daten/fotos/
83+
writable = yes
84+
force user = pi
85+
valid users = peter,kristin

0 commit comments

Comments
 (0)