Dieser Artikel beschreibt die vollständige Einrichtung einer Netzwerkfreigabe auf einem Linux-Server mittels Samba, die von Windows-Clients genutzt werden kann.
Ziel ist eine private, authentifizierte Freigabe, bei der:
samba, samba-common, smbclient| Komponente | Aufgabe |
|---|---|
Samba-Freigabe (smb.conf) | macht Ordner im Netzwerk sichtbar |
Dateirechte (chmod, chown) | erlaubt Zugriff auf dem Dateisystem |
Benutzer (smbpasswd) | erlaubt Anmeldung am Samba-Dienst |
#!/bin/bash
# === Konfiguration ===
SMB_USER="testuser"
SHARE_NAME="private"
SHARE_PATH="/srv/samba/$SHARE_NAME"
SMB_COMMENT="Private Freigabe für $SMB_USER"
PASSWORD="changeme123"
# === Benutzer anlegen ===
useradd -m -s /bin/bash "$SMB_USER"
echo "$SMB_USER:$PASSWORD" | chpasswd
(echo "$PASSWORD"; echo "$PASSWORD") | smbpasswd -a "$SMB_USER"
# === Verzeichnis anlegen ===
mkdir -p "$SHARE_PATH"
chown "$SMB_USER":"$SMB_USER" "$SHARE_PATH"
chmod 700 "$SHARE_PATH"
# === Samba-Konfiguration anhängen ===
cat <<EOF >> /etc/samba/smb.conf
[$SHARE_NAME]
comment = $SMB_COMMENT
path = $SHARE_PATH
browseable = yes
writable = yes
valid users = $SMB_USER
force user = $SMB_USER
create mask = 0700
directory mask = 0700
EOF
# === Samba neustarten ===
systemctl restart smbd nmbd
# === Ausgabe ===
echo "Freigabe [$SHARE_NAME] erfolgreich eingerichtet!"
echo "Zugriff über: \\$(hostname -I | awk '{print $1}')\\$SHARE_NAME"
Speichern unter z. B. /root/setupsambafreigabe.sh und ausführbar machen mit:
chmod +x /root/setup_samba_freigabe.sh
\\<IP-des-Servers>\<Freigabename>