Letzte Änderung: 21. November 2022
Mit Samba Windows Shares mounten
Windows Shares per Samba in die /etc/fstab einhängen
Samba Benutzerverwaltung
Samba Grundkonfiguration
Samba Freigaben Konfiguration
Samba Administrative Tools
Samba Gast Zugang
Mit Samba Windows Shares mounten
Temporäres einbinden :
smbclient -L //192.168.0.2
Zeigt mir die Shares der jeweiligen IP an.
und so mounte ich diese :
mount -t cifs -o username=Paul //192.168.0.2/D /home/platte2
mount -t cifs -o username=Paul,domain=domain.intra,rw,auto,nounix,dir_mode=0700,file_mode=0700,uid=paul,gid=paul //192.168.0.2/Paul$ /home/paul/mountpoint && echo "Laufwerk erfolgreich gemounted !" || echo "Fehler !"
nun wurde die Freigabe in /home/platte2 eingehangen.
Windows Shares per Samba in die /etc/fstab einhängen
typisches fstab Schema : "PARTITION" "MOUNTPOINT" "DATEISYSTEM" "MOUNT-OPTION" "DUMP / FSCK"
cat /etc/fstab
# Allgemein:
# //Server/Freigabe Mountpunkt cifs Liste_der_Optionen 0 0
/dev/hda1 / ext3 defaults 1 1
/dev/hda2 swap swap pri=42 0 0
//192.168.0.1/Logs /mnt/Logs cifs auto,dir_mode=0700,file_mode=0700,uid=paul,gid=paul,credentials=/home/paul/.smbcredentials 0 0
Eine .smbcredentials im eigenen Homeverzeichnis anlegen und folgenden Inhalt einfügen :
vi /home/paul/.smbcredentials
username=paul
password=meinpasswort
domain=DOMÄNENNAME
Damit die Datei nur vom Besitzer eingesehen werden kann, setzt man die Rechte entsprechend
chmod 600 /home/paul/.smbcredentials
Samba Benutzerverwaltung
Benutzerverwaltung :
Wenn Sie einen Samba-Server konfiguriert haben, müssen Sie für jeden Benutzer der auf die Freigaben zugreifen darf einen lokalen Benutzer und einen Account in der Benutzerdatenbank von Samba einrichten.
Samba hat in der Standardinstallation eine vom System getrennte Benutzerverwaltung, welche mit dem Befehl smbpasswd administriert wird:
smbpasswd -a username # Fügt den Benutzer username der Samba Datenbank hinzu und aktiviert diesen
smbpasswd username # Wird smbpasswd ohne Parameter aufgerufen, kann man das Passwort des angegebenen Benutzers ändern.
smbpasswd -x username # Entfernt den Benutzer username aus der Samba Datenbank
smbpasswd -d username # Deaktiviert den Benutzer username in der Datenbank
smbpasswd -e username # Aktiviert den vorher deaktivierten Benutzer username in der Datenbank wieder
Bei der Installation von Samba wird leicht vergessen, dass weder die im System eingetragenen Benutzer noch deren Passwörter automatisch in die Benutzer-Datenbank von Samba übernommen werden.
Benutzer, die zur Datenbank von Samba hinzugefügt werden, müssen schon auf dem System als "normale" Benutzer vorhanden sein. Es ist ratsam, aber nicht erforderlich, für Samba
das gleiche Passwort wie das Systempasswort des Benutzers zu nehmen.
Falls man das Passwort der Samba-Freigabe an eine größere Gruppe verteilen will, so ist es sinnvoll dafür einen speziellen Account auf dem eigenen System anzulegen, der sich
weder einloggen kann, noch ein Homeverzeichnis hat, oder sonst etwas darf. Dies geschieht mit folgendem Befehl:
Durch das Deaktivieren eines Benutzers kann man für diesen den Zugriff auf Samba vorübergehend sperren, ohne dafür sein Passwort zu verändern oder seinen Eintrag zu löschen.
Samba Grundkonfiguration
Wichtige Optionen in der [global] Sektion :
security - Dieser Parameter bestimmt das Sicherheitslevel, mit dem Bereiche auf dem Server freigegeben werden und kann folgende Werte annehmen :
"user" - Ab Samba 2.0 ist der voreingestellte Defaultwert "user", was bedeutet, dass der Client einen gültigen Benutzernamen und ein Passwort übermitteln muss.
In der Praxis sieht das so aus, dass ein kleines Fenster aufpoppt und man aufgefordert wird, eben jene Daten einzugeben.
"share" - Dies ist die niedrigste Sicherheitsstufe, die man einstellen kann. Ein Client braucht hier nicht mal einen Benutzernamen übermitteln.
Windows tut das trotzdem und übersendet den Benutzernamen des angemeldeten Benutzers in Windows.
"server" - Bei dieser Option werden Nutzerdaten mit den Daten auf einem weiteren Samba-Server
abgeglichen, schlägt dies fehl, wird auf den Modus "user" ausgewichen.
"domain" - Diese Option funktioniert nur unter einer Windows NT Umgebung und soll an dieser Stelle nicht weiter besprochen werden.
"ADS" - Diese Option brauchen wir wenn wir den Samba Server zum Domaincontroller machen wollen und soll an dieser Stelle nicht weiter besprochen werden.
Samba Freigaben Konfiguration
Allgemeine Freigaben werden direkt in die Datei /etc/samba/smb.conf an deren Ende eingetragen. Dazu wird zuerst in eckigen Klammern der Name
angegeben, unter dem die Freigabe im Netz verfügbar ist. In der nächsten Zeile folgt der Pfad zur freigegebenen Datei oder Ordner auf dem Server.
Parameter :
Parameter brauchen grundsätzlich nur dann angegeben zu werden, wenn ihr Wert vom Standardwert (Default) abweicht.
browseable = yes|no = Wenn die Option browseable = No gesetzt wurde, dann erscheint der share nicht in der Liste der freigegebenen Verzeichnisse in der Windows Netzwerkumgebung, steht
aber trotzdem zur Verfügung, wenn man den entsprechenden Pfad (\\Rechnername\Freigabename) angibt. Sobald "browseable = yes" gesetzt wird, ist die Netzwerkfreigabe für jederman sichtbar.
Standardmäßig steht browseable auf yes.
Speziell ist die Netzwerkfreigabe [homes]. Bei der Netzwerkfreigabe [homes] wird mit einem Benutzer-Platzhalter ("%U" und "%S") gearbeitet.
Es wird nur das Verzeichnis mit dem aktuellen Benutzer angezeigt. Alle anderen Netzwerkfreigaben sind zwar vorhanden, werden aber vom Samba nicht geliefert.
Die Angabe "guest ok = yes|no" bedeutet, dass dieses share ohne Passwort erreichbar ist. Stattdessen hätten wir auch schreiben können "public = yes".
available = yes|no = Mit dieser Option kann - wenn sie auf No gesetzt ist, ein share für den Augenblick abgeschaltet werden, ohne ihn aus der Datei /etc/smb.conf zu streichen oder
langwierig auszukommentieren. Standardmäßig ist available auf yes gestellt.
read only, writeable = yes|no = Die Optionen read only (auch als write ok bezeichnet) und writable (auch als writable bezeichnet) stellen in der Tat zwei Möglichkeiten
dar, das Gleiche auszudrücken, allerdings von entgegengesetzten Ausgangspunkten aus. Standardmäßig steht read only auf yes und writeable auf no.
Sie können zum Beispiel eine der folgenden Optionen im Abschnitt [global] oder in einer speziellen Freigabe setzen :
read only = yes
writeable = no
Wenn beide Optionen entsprechend gesetzt sind, können Daten von der Freigabe gelesen, aber nicht auf sie geschrieben werden. Dies wäre dieselbe Einstellung wie die Default Werte !
Falls Sie Daten auf eine Freigabe schreiben wollen, müssen Sie in der Konfigurationsdatei für jede Freigabe ausdrücklich
EINE der folgenden Optionen festlegen :
read only = no oder writeable = yes
Treten die beiden Optionen jeweils mehr als einmal auf, beachtet Samba für die Freigabe den letzten Wert, den es erkennt.
---
Vor jeder Veränderung der Datei /etc/samba/smb.conf sollte unbedingt eine Kopie der ursprünglichen Fassung angelegt werden. Vor dem Aktivieren überprüft man die Datei mit "testparm".
---
die smb.conf kann z.B. so aussehen :
[global]
security = user
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
workgroup = BLUTGRUPPE
server string = Samba Server
netbios name = RPI4
wins support = yes
name resolve order = bcast wins lmhosts
guest account = nobody
map to guest = Bad Password
ntlm auth = true
server role = standalone server
# this tells Samba to use a separate log file for each machine that connects
log file = /var/log/samba/log.%m
max log size = 50
# Standardmäßig bei Samba bis Version 3.3.10:
# passwd backend = smbpasswd
# Migrate Samba 3.3.10 to > 3.4: # pdbedit -i smbpasswd -e tdbsam
# Standardmäßig bei Samba ab Version 3.4:
passdb backend = tdbsam
#============================ Share Definitions ==============================
#[homes]
# comment = Home Directories
# valid users = %S, %D%W%S
# browseable = No
# writable = yes
# inherit acls = Yes
#[printers]
## NOTE: If you have a BSD-style print system there is no need to specifically define each individual printer
# comment = All Printers
# path = /usr/spool/samba
# browseable = no
## Set public = yes to allow user 'guest account' to print
# guest ok = no
# writable = no
# printable = yes
# A private directory, usable only by marcus. Note that marcus requires write access to the directory.
[marcus]
valid users = marcus
create mask = 0000
directory mask = 0000
force create mode = 0775
force directory mode = 0775
force user = marcus
force group = marcus
hide dot files = No
hide files = /lost+found/.cache/.local/.bash_history/.bash_logout/.viminfo/.gnupg/.zsh_history/.zshrc/.ssh/.bash_profile/.bashrc/.config/.oh-my-zsh/.profile/.Xauthority/.xsessionrc/.zcompdump/.zcompdump-on2p-5.8/
path = /home/marcus
read only = No
Samba Administrative Tools
Um die Konfigurationsdatei /etc/samba/smb.conf auf eine gültige Syntax überprüfen zu lassen, wird testparm verwendet:
Läuft die Ausgabe korrekt durch, sind zumindest keine Syntaxfehler enthalten.
---
Sambauser anzeigen :
pdbedit -L # Alle Sambauser anzeigen
pdbedit -L -v | grep karl # Sambauser karl ausführlich anzeigen
---
Ob ein Samba-Benutzer deaktiviert ist können Sie mit dem folgenden Befehl feststellen. Wird hier ein D angezeigt ist der Benutzer in der Samba-Benutzerdatenbank deaktiviert.
[root@centos5 ~]# pdbedit -L -v -u karl | grep Flags
Account Flags: [DU ]
Samba Gast Zugang
Samba kann auch "Gästen", die nicht in der Benutzer-Datenbank eingetragen sind, den Zugang zu einzelnen Freigaben ohne Passwort gestatten. Hierzu muss bei diesen Freigaben
jeweils die Zeile:
guest ok = yes
oder gleichbedeutend
public = yes
eingetragen sein (Standardwert ist no). Bei allgemeinen Freigaben (s.u.) ist dieser Eintrag grundsätzlich möglich; ob auch einzelne Benutzer bei ihren persönlichen Freigaben (s.u.) den
Gast-Zugang gestatten dürfen, legt der Parameter usershare allow guests im Bereich [public] von smb.conf fest. Standardwert ist hier:
usershare allow guests = yes
Doch nicht jeder kann sich automatisch bei Samba als "Gast" anmelden. Wer als "Gast" gilt, legt der Parameter map to guest im Abschnitt [global] von smb.conf fest. Üblich ist
map to guest = bad user
Als bad user gilt jeder Benutzer, der nicht in der Samba-Datenbank des Servers eingetragen ist. Wem dann die Ordner und Dateien gehören, die ggf. von Gästen angelegt werden, legt der
Parameter "guest account" fest. Üblich ist:
guest account = nobody
Unter diesem Namen melden sich auch Windows sowie GNOME und KDE beim Zugriff auf Freigaben mit erlaubtem Gast-Zugang an.
Gäste haben beim Zugriff auf Freigaben höchstens die Rechte, die ihnen auch auf dem Server selbst zustehen würden. Es ist deshalb durchaus möglich, dass Gäste keine
Schreibrechte haben, obwohl bei der Freigabe:
writeable = yes
eingetragen ist.
---
Besondere Beachtung bei der Integration von Windows- und Linux-Clients ist die Behandlung von Dateirechten. Die unter Windows erstellten Dateien müssen entsprechend den Linux-Benutzern
und den zugehörigen Rechten zugeordnet werden. Für diese Zwecke gibt es in der smb.conf einige Parameter für die Konfiguration der Rechte bei der Erstellung von Dateien :
create mask = 0644
directory mask = 0755
Diese beiden Zeilen legen jene Rechte fest, die Dateien und Ordner erhalten, wenn sie am Share angelegt werden. Die Zahlenwerte gleichen dabei jenen oktalen Werten, die auch beim
Befehl "chmod" zum Einsatz kommen. Mit diesen standard-vergebenen Rechten kann sichergestellt werden, dass die Dateien und Ordner beim Erstellen die gewünschten Rechte erhalten.
Für die Beschränkung eines Shares auf einzelne Gruppen kann
valid users = @smbusers
eingesetzt werden. Nun können nur mehr Mitglieder der Gruppe "smbusers" auf das Share zugreifen.
Wichtig ist, dass letztendlich immer die entsprechenden Linux-Dateirechte am Server zum Zuge kommen. Das heißt, eine entsprechende Konfiguration der User-Rechte direkt am Server
ist sicher die beste Sicherheitsmaßnahme, da die Dateirechte nicht von einer Samba-Konfiguration umgangen werden können.