Ein Verzeichnis mit dem Windows AD und SMB/CIFS Dateiserver für UNIX über das Netzwerk freigeben und Benutzern sowie Gästen Lese- und Schreibzugriff gewähren.
Dieses Setup für ein NAS mit Samba erlaubt neben Benutzern, auch Gästen Lese- und Schreibzugriff. So kann jeder auf das Netzlaufwerk zugreifen! Durch das Stiky-Bit ist jedoch sichergestellt, das niemand die Dateien eines anderen löschen oder überschreiben kann.
Verzeichnis anlegen und Samba konfigurieren
Das Verzeichnis für das NAS legt man am besten unterhalb von /srv an. Dieses Verzeichnis enthält betriebsspezifische Daten, die vom System bereitgestellt werden und folgt dem FHS.
# neues Verzeichnis erstellen
mkdir -p /srv/nas
# Benutzer, Gruppe, Dateirechte und StickyBit setzen
chown root:staff /srv/nas
chmod a+rwXt /srv/nas
Im Verzeichnis /srv/nas können nun alle Benutzer unter ihrer UID Dateien erstellen, ändern und löschen. Die Dateien anderer Benutzer können nur geöffnet, nicht aber geändert oder gelöscht werden. Will man dies erlauben, muss man mit Benutzergruppen (GID) arbeiten.
Um das Verzeichnis freizugeben, muss die Konfiguration smb.conf(5) um folgende Sektion erweitert werden:
cat <<! >>/etc/samba/smb.conf
[NAS]
comment=NAS
path=/srv/nas
public = yes
writeable = yes
guest ok = yes
guest account = nobody
create mask = 0665
directory mask = 0775
!
Mit testparm(1) kann die Konfigurationsdatei auf Syntaktische Korrektheit überprüft werden.
testparm
Benutzern den Zugriff erlauben
Damit Benutzer unter ihrer ID Dateien im NAS und auch im Benutzerverzeichnis ablegen können, muss für jeden ein Passwort in der Benutzerdatenbank von Samba einrichten sein. Ohne Passwort können Benutzer weder lesend noch schreibend auf ihr Benutzerverzeichnis zugreifen. Es besteht allerdings auch die Möglichkeit, Benutzer ohne Passwort zu aktiveren. Linux und Samba verwenden unterschiedliche Passwörter.
Zum Erstellen des Passworts in der Samba-Benutzerdatenbank smbpasswd(5) kann entweder pdbedit(8) oder smbpasswd(8) verwendet werden.
Hinweis: Will man $HOME nicht freigeben, empfiehlt es sich die Sektion [homes] in der smb.conf(5) auszukommentieren.
Passwort anlegen
Das Passwort für einen Benutzer wird mit smbpasswd -a <username>
angelegt.
Wird smbpasswd(8) ohne Parameter aufgerufen, kann das Passwort des aktuellen Benutzers geändert werden.
Das anlegen des Passwords kann für neue Benutzerkonten auch während der Einrichtung passieren. Dazu legt man die Datei /usr/local/sbin/adduser.local an. Wenn die Datei existiert, wird sie nach der Einrichtung des Benutzerkontos ausgeführt, um lokale Einstellungen vorzunehmen.
cat <<! >/usr/local/sbin/adduser.local
#!/bin/sh
# An adduser.local werden die folgenden Argumente übergeben:
# Benutzername, UID, GID und Home-Verzeichnis.
user="$1"
uid="$2"
gid="$3"
home="$4"
# add new users to the local smbpasswd(5) file
smbpasswd -a "$user"
# Make sure that the script will "exit 0"
true
!
chmod -x /usr/local/sbin/adduser.local
Passwort entfernen
Um ein Benutzerkonto beim entfernen auch aus der Samba-Benutzerdatenbank auszutragen, kann die /usr/local/sbin/deluser.local analog zu adduser.local angelegt werden.
cat <<! >/usr/local/sbin/deluser.local
#!/bin/sh
# An deluser.local werden die folgenden Argumente übergeben:
# Benutzername, UID, GID und Home-Verzeichnis.
user="$1"
uid="$2"
gid="$3"
home="$4"
# delete user from the local smbpasswd(5) file
smbpasswd -x "$user"
# Make sure that the script will "exit 0"
true
!
chmod -x /usr/local/sbin/deluser.local
Zur Verwaltung der Samba-Benutzerdatenbank bietet sich pdbedit(8) an. Damit kann u.a. abgefragt werden, für welche Benutzer in der Samba-Benutzerdatenbank ein Passwort vergeben wurde.
pdbedit -L
Netzlaufwerke einbinden
Unter Linux (GNOME), Microsoft Windows usw. sollte das NAS als Netzwerkfreigabe gefunden werden.
Für einen Datentransfer über Samba, wird eine Pfadangabe bzw. URI der folgenden Form benutzt:
smb://{hostname|ip}/NAS
Mailingliste abonnieren
Um Ankündigungen, wie z.B. Benachrichtigungen über neue Versionen und Bugs zu erfahren, sollte man zusätzlich die Samba Mailingliste abonnieren. Die Adresse ist unter https://lists.samba.org zu finden und es sollte mindestens samba-announce abonniert werden.
NAS mit SFTP
Ist SSH bzw. das Paket openssh-sftp-server installiert, kann auch via SSH auf das Benutzerverzeichnis zugegriffen werden. Und viele Dateimanager unterstützen das SSH-Protokoll SFTP.
Für einen Datentransfer über SSH an einem entfernten Rechner, benutzt man eine URI der Form:
sftp://[username@]{hostname|IP}[:port]/path/to/share
Alternativ können statt des Authority-Teil, auch die Aliasnamen aus ssh_config(5) verwendet werden.