Samba
LOG global
- Fehlermeldungen in /var/log/messages - 27.03.2010
smb ports = 139
Damit sollen Fehlermeldungen der Art "Socket ist nicht verbunden ..." verschwinden.
- Gruppenspezifisches Loginscript - 13.09.2009
logon script = login.%g.bat
Es gibt jetzt mehrere Loginscripte: login.users.bat, login.hslehrer.bat, ...
Die Windows Netzlaufwerke werden gruppenspezifisch gemappt.
Jedes Loginscript ruft dann die Datei printers.bat auf.
Nicht für jede Gruppe gibt es ein eigenes Loginscript. Für manche Gruppen muss daher ein Link zu einem existierenden Loginscript angelegt werden:
# Beispiel cd /samba/netlogon/ ln -s login.users.bat login.h_schueler.bat
- Socket Options zur Performance Steigerung
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE
- Preexec Script - 10.10.2008
[netlogon]
comment = Network Logon Service path = /samba/netlogon write list = root, grfe, hs browseable = No root preexec = /usr/local/bin/samba_login.sh %u %m
Das Script wird mit root-Rechten bei der Verbindung des Users mit der Freigabe Netlogon ausgeführt. Es schreibt in eine Logdatei, wer sich bei diesem PC angemeldet hat. Die Logadateien sind in /samba/netlogon/log.
# /usr/local/bin/samba_login.sh # ------------------------------------------ #!/bin/bash # Eingabeparameter: $1: Benutzername # $2: NetbiosName des PC # ------------------------------------------ datum="`date +%A' '%d.%m.%Y`" zeit=`date +%T | cut -c1-5` log=$datum' '$zeit' --- '$1 echo $log >> /samba/netlogon/log/$2.log
08.01.2008
create mask = 775
geändert auf
create mask = 755
Grund: Konfigurationsdateien von Schülern, z.B. im Oriolus sollen nur für den Benutzer änderbar sein.
Projekte Verzeichnis
- Gruppen S-Bit setzen
cd /daten chgrp hs_lehrer projekte chmod g+s projekte -R
Damit ist sichergestellt, dass (unabhängig von Samba) jede neue Datei der Gruppe hs_lehrer gehört. Mitglieder der Gruppe hs_lehrer können die Dateien bearbeiten.
- Share Projekte definieren
[projekte] comment = Projektverzeichnis path = /local/daten/projekte read only = No create mask = 0665 # Die Gruppe bekommt Schreibrecht # Das Projektverzeichnis gehoert der Gruppe hs_lehrer # Fuer das Projektverzeichnis ist das Gruppen S-Bit gesetzt directory mask = 0777 force directory mode = 1770 # Sticky Bit auf neues Verzeichnis setzen # Trotz Schreibrecht im Verzeichnis wird damit Loeschen und Umbenennen verhindert.
Das Sticky Bit verhindert das Löschen und Umbenennen von Dateien in diesem Verzeichnis, obwohl Schreibrechte für alle gesetzt sind. Dieses Feature wird automatisch auf neu angelegte Verzeichnisse vererbt.
- Sticky Bit
Das ist ein Verzeichniseintrag mit gesetztem Sticky Bit:
drwxrwxr-t 2 root hs_schueler 4096 19. Okt 15:21 Englisch Ritz
Manuelles Setzen des Sticky Bit bei Verzeichnissen
find . -type d -exec chmod +t {} \;
SAMBA Server übersiedeln
net getlocalsid
liefert die SID der Domäne.
net setlocalsid
Damit kann man die SID der Domäne neu setzen.
Dokumentation
- Installation
Paket samba-doc muss extra installiert werden, am besten mit YAST.
- Workaround
Wenn trotz installiertem samba-doc keine Hilfedateien gefunden werden, hilft folgender Link:
ln -s /usr/share/doc/packages/samba/htmldocs/manpages /usr/share/samba/swat/help/manpages
- Zeichenketten Substitutionen
Zeichenkettensubstitutionen von Samba Samba kennt eine Menge von Zeichenkettensubstitutionen, die jeweils mit einem Prozentzeichen beginnen und vom Server durch eine bestimmte Zeichenfolge ausgetauscht (substituiert) werden. So ist es z.B. möglich, userbezogene Pfade zu setzen, wie in
Samba 2.0 unterstützt die folgenden Substitutionen:
- %S
- Der Name des aktuellen shares - sofern es einen gibt.
- %P
- Das Wurzelverzeichnis des aktuellen shares - sofern es einen gibt.
- %u
- Der Name des Users, der die Anfrage macht.
- %g
- Name der primären Gruppe des Users %u.
- %U
- Session User Name - Der Name, den der Client angab, nicht notwendigerweise der, den er dann bekommen hat.
- %G
- Name der primären Gruppe von %U
- %H
- Das Homeverzeichnis des Users %u
- %v
- Die Versionsnummer von Samba
- %h
- Der Internet Hostname des Rechners, auf dem Samba läuft.
- %m
- Der NetBIOS Name des Windows-Clients - Sehr nützlich
- %L
- Der NetBIOS Name des Servers. Das erlaubt es, unterschiedliche Konfigurationen anzubieten, je nachdem, wie der Server vom Client angesprochen wurde.
- %M
- Der Internet Name der Client-Maschine
- %N
- Der Name des NIS Home Directory Servers.
- %p
- Der NIS Pfad des Homedirectories des aktuellen shares.
- %R
- Der SMB-Protokoll-Level nach dem Handshake. Eins von CORE, COREPLUS, LANMAN1, LANMAN2 oder NT1.
- %d
- Die Prozess ID des aktuellen Server-Prozesses.
- %a
- Die Architektur der Client-Maschine. Nicht hundertprozent verlässlich. Eins von Samba, WfWg, WinNT, Win95 und UNKNOWN.
- %I
- Die IP-Adresse der Client-Maschine.
- %T
- Aktuelles Datum und Uhrzeit
SWAT
- SWAT aktivieren
SWAT ist eine Abkürzung für Samba Web Administration Tool. Voraussetzung ist ein installierter Webserver (Apache2). SWAT wird über die Internetdienste Xinetd aktiviert. Dies führt man am einfachsten mit YAST / Netzwerkdienste durch. In der angezeigten Liste die SWAT Zeile aktivieren.
- Änderungen an der Datei /etc/xinetd.d/swat
# only_from = 127.0.0.1
- Firewall konfigurieren
Port 901 freischalten
- Hilfedateien
Falls die Hilfedateien nicht geladen werden können, folgenden Link anlegen:
cd /usr/share/samba/swat/help ln -s /usr/share/doc/packages/samba/htmldocs/manpages-3 manpages
SAMBA Kommandozeilen Tools
smbmount
- Samba Share mounten
smbmount //server/share /mnt -o username=domain\username
- Linux als Samba Client konfigurieren
Damit von einem Linuxrechner Zugriff auf Freigaben eines SAMBA Servers möglich ist, muss die Firewall angepasst werden. Zusätzlich im Modul Firewall / Broadcast die Broadcast-Antwort für Samba Browsing akzeptieren, sonst wird die Windows-Arbeitsgruppe bzw. Domäne unter Linux nicht automatisch gefunden.
smbclient
- Shares auflisten, die auf einem Server angeboten werden:
smbclient -L server
- Anmeldung als user an einem Samba Server
Folgendes Beispiel testet die Anmeldung des Users "chri" auf dem Server "localhost"
smbclient -L localhost -U chri
- Anmeldung an einer Freigabe
smbclient -U hs_user //server/projekte
Jetzt kann man Befehle vergleichbar mit FTP eingeben
smbstatus
- Angemeldete Benutzer ausgeben:
smbstatus -b
rpcclient
Programm zur Verwaltung des Samba Servers. Das Programm hat eine eigene Shell. Man kann aber auch Kommandos mit der Option -c als Parameter mitgeben.
# Beispiele rpcclient localhost -U root%passwort -c enumprinters rpcclient localhost -U root%passwort -c enumdrivers rpcclient localhost -U root%passwort -c "deldriver \"Brother HL-1450 series\""
Troubleshooting
- Ändern der Schnittstelle (Netzwerkkarte) am Server
Wenn man eine andere Netzwerkkarte verwendet, muss man anscheinend mit YAST "Samba Server" den Firewall Port öffnen. Warum, weiß ich nicht, aber es funktioniert.
- Fehlermeldung wegen
rlimit_max
Der Befehl testparm
meldet folgenden Fehler
rlimit_max (1024) below minimum Windows limit (16384)
Lösung: Es muss in die Datei /etc/security/limits.conf
folgende Zeile hinzugefügt werden:
* - nofile 16384
- Firewall am Samba Server
Konfiguration mit YAST Modul Firewall:
Folgende Dienste müssen am Server erlaubt werden: Samba Server, Samba Client, Netbios Server
- Account Datenbank
Anscheinend ist es bei neueren Samba Versionen notwendig, die Account Datenbank zu definieren, wenn man smbpasswd verwenden will. Die Verwendung von smbpasswd zur Authentifizierung ist offensichtlich veraltet und muss daher in der Datei /etc/samba/smb.conf
explizit angegeben werden.
[globals] passdb backend = smbpasswd
- Anzeige der Drucker in der Windows Netzwerkumgebung "Drucker und Faxgeräte" stimmt nicht.
Normalerweise sollte die Liste der installierten CUPS Drucker mit der von Windows angezeigten Liste übereinstimmen. Sollte dies nicht der Fall sein, denn folgende Datei löschen:
/var/lib(samba/ntprinters.tdb
Nach Neustart von SAMBA wird die Datei wieder erstellt mit den richtigen Informationen aus CUPS