Linux als SOHO-Server
für Linux- und Windows-Clients |
Kapitel:
|
Auf der vorliegenden Seite werden einige Erweiterungen bezüglich im Umgang mit Samba aufgeführt. Die Seite kann als unstrukturierte kleine HowTo-Sammlung angesehen werden. CD/DVD-Laufwerk als NetzlaufwerkSollte der Samba/Linux-Server über ein CD- oder DVD-Laufwerk verfügen, kann es sinnvoll sein, dieses dem SMB-Nutzern, sozusagen als CD/DVD-Server zur Verfügung zu stellen. Die Bereitstellung kann wie eine Normale Freigabe in der Konfigurationsdatei eingebracht werden, Hierzu ein Beispielauszug aus der 'smb.conf':
Beim Zugriff auf die Freigabe, wird eine im Laufwerk befindliche CD/DVD automatisch ge-mountet. Bei Nichtbenutzung, wird das Laufwerk wieder un-mountet. Für das automatische mounten/un-mounten des CD/DVD-Laufwerks kommen die Parameter: 'root preexec' und 'root postexec' zum Einsatz. Zugriff auf FTP-/HTTP-DatenbereichSollte neben Samba-Dienst noch ein FTP- oder HTTP-Dienst betrieben werden, kann es für den Administrator bequem sein, die Pflege des Datenbereichs über den Explorer unter Windows durchzuführen. Auch hierfür können normale Freigaben in der 'smb.conf' eingebracht werden:
Der Zugang zu den beiden Datenbereichen sollte nur den Administratoren erlaubt sein. Passwort-SynchronisationDie Samba-Passwortdatei '/etc/samba/smbpasswd' und die System-Passwortdatei '/etc/passwd' lassen sich bei Änderung der Benutzerpasswörter synchronisieren. Dazu sind in der 'smb.conf' folgende Zeilen in der Sektion '[globals]' einzufügen:
Der Parameter 'unix password sync = Yes' aktiviert die Synchronisation zwischen den beiden Passwortdateien. Mit 'password program' wird das Programm festgelegt, welches für die Änderung des Passworts verantwortlich ist, '%u' steht dabei für den User. Der 'passwort chat' ist der String, der als Dialog läuft, wenn ein Benutzer sein Passwort ändert. Die Variable '%n\n' steht dabei für das neue Passwort, gefolgt von der Eingabetaste. Das Zeichen '*' steht dabei für beliebige Zeichen. WinpopupWinpopup-Ausgaben sind sich öffnende Fenster auf einem Client, indem kurze Nachrichten für den Client stehen. Bei den NT-Betriebssystemen ('Win NT 4', 'Win 2000', 'Win XP') ist der entsprechende Messenger-Dienst, für die Darstellung der Winpopup-Ausgaben permanent aktiv. Um unter 'Windows NT' eine Nachricht zu versenden, kann das eingebaute Kommando 'net send' genutzt werden. Mit dem Kommando können Nachrichten an andere Benutzer-, Computer- oder Nachrichtennamen im Netzwerk gesendet werden.
z.B.:
Bei den Betriebssystemen 'Windows 9x/ME' ist dazu das Programm 'winpopup.exe', welches zum Lieferumfang der Betriebssysteme gehört, zu starten. Ist das Programm gestartet, so können Nachrichten empfangen, als auch gesendet werden. Unter Linux, sofern Samba installiert ist, können auch Nachrichten empfangen werden. Dazu muss Samba mitgeteilt werden, wie die Nachricht zu verarbeiten ist. Hierzu dient der Parameter 'message command' der in der Sektion '[global]' der Konfigurationsdatei 'smb.conf' einzufügen ist:
Dieser Befehl wird ausgeführt, sobald eine Nachricht empfangen wird. Dabei steht '%f' für den Namen des Absenders und '%t' für den Namen des Empfängers (normalerweise ist nur der Servername möglich). Das Makro '%s' ist der Dateinamen in dem die Nachricht sich befindet. Eine wesentlich komfortablere Möglichkeit bietet das Programm 'LinPOPUP', welches unter einer graphischen Oberfläche (z.B. KDE oder Gnome) zu betreiben ist. Das Programm kann ebenfalls, ähnlich wie 'winpopup.exe' Nachrichten empfangen und senden. Unter Linux ist das versenden von Nachrichten mit dem Programm 'smbclient' (welches zu Samba gehört) möglich. Um eine Nachricht zu versenden ist der Parameter '-M' zu verwenden:
Nach dem Kommando kann der zu sendende Text eingegeben werden, mittels der
Tastenkombination 'STRG' & 'D' wird der Text abgesendet. Als Host ist der 'NetBIOS'-Name
anzugeben, an dem die Nachricht gelangen soll.
Leider ist es nicht möglich, mit 'smbclient' eine Nachricht an alle im Netzwerk befindlichen Clients zu senden (Broadcast-Message), um eine globale Information zu versenden. Damit auch dieses möglich wird kann ein kleines Shell-Script erstellt werden:
Das Shell-Script sendet an alle bekannten Benutzer im Subnetz nacheinander
eine Nachricht ('for'-Schleife). Die in
Frage kommenden Rechner werden mit dem 'nmblookup'-Kommando
bestimmt. 'grep' und 'cut'
extrahieren dabei den 'NetBIOS'-Namen
(grüne Markierung).
Danach sollten alle Clients mit der Nachricht versorgt werden. ACL-SupportMittels ACLs (Access Control Lists) ist es möglich zu kontrollieren, welche Benutzer zu welchen Diensten (Dateien, Netzwerkdiensten) Zugang haben. Dabei sind die ACLs feiner einstellbar als die regulären Zugriffsrechte unter Unix/Linux, die nur Benutzerkennung oder Gruppenzugehörigkeit berücksichtigen. Auch wird die Homogenität zwischen neueren Windows Betriebssystemen (z.B.: W2K/XP mit NTFS-Dateisystem) und einem Linux/Samba-Server verbessert, da auch Windows-Clients die ACL-Funktionalität auf Netz-Freigaben einsetzen können. Damit auch unter Linux in Kombination mit Samba vom Windows-Client aus ACLs genutzt werden können, sind einige Bedingungen und Vorraussetzungen zu beachten:
Arbeiten mit ACLs unter LinuxUm unter Linux auf der Kommandozeile mit ACLs zu arbeiten können die Tools 'getfacl' und 'setfacl' genutzt werden. Hierzu ein Beispiel mit der Datei 'acl.txt' die sich im Verzeichnis '/home/linux/tmp' befindet: Die Datei wurde zunächst als Benutzer 'linux' normal angelegt; hier die Langform der Verzeichnisausgabe:
Um sich nun die ACLs der einzelnen Dateien anzuzeigen zu lassen, wird der Befehl 'getfacl' genutzt, aus Kompatibilitätsgründen werden die klassischen Zugriffsrechte ebenfalls ausgegeben:
Um nun zusätzliche Zugriffsrechte für diese Datei zu setzen ist der 'setfacl' anzuwenden,
Mit dem Befehl wird nun dem Benutzer 'norbert'
das Recht zum Lesen und Schreiben auf die Datei gegeben.
Der neue Eintrag 'user:norbert:rwx' sollte nun zusätzlich bei der Ausgabe erscheinen. Bei der Ausgabe des Verzeichnisinhalts mit 'ls -lisa' sollte folgendes erscheinen:
Zu erkennen ist das sich hinter der Spalte Zugriffsrechte ein '+'-Zeichen befindet, welches auf vorhandene ACLs hinweist. Die Rechte für die Gruppe stehen jetzt auf 'rw-'. Sichern/Wiederherstellen von ACLsUm die ACL-Informationen von allen Dateien und Verzeichnissen zu sichern kann ebenfalls Programm 'getfacl' genutzt werden. Hierzu ein Beispiel:Mit der Option '--recrusive' wird alles ausgehend vom Verzeichnis '/home' gesichert, mit der Option '--skip-base' werden alle Dateien ausgelassen die Standard-Unix-Rechte besitzen. Laut Empfehlungen sollte man für jedes Datei-System eine eigene ACL-Sicherung durchführen. Im vorliegenden Beispiel ist das Verzeichnis '/home' auf einem eigenen Datei-System untergebracht.getfacl --recursive --skip-base /home > backup.acl Das Wiederherstellen der ACLs aus der Sicherungsdatei kann mit dem Befehl 'setfacl' erfolgen: setfacl --restore=backup.acl Das Wiederherstellen ist durchzuführen nachdem z.B. eine Datensicherung zurückgespielt wurde. Arbeiten mit ACLs unter WindowsUm unter Windows die ACLs einer Datei zu beeinflussen, sind mit der rechten Maustaste die Eigenschaften der Datei aufzurufen. Unter dem Reiter 'Sicherheit' können die Rechte eingesehen werden. Die erweiterten Zugriffsrechte können durch den Button 'Erweitert' angezeigt und modifiziert werden:
Zu beachten ist, dass der Dialog auch dann zur Verfügung steht, wenn der Samba-Server ACLs nicht unterstützt. Nach gemachten Änderungen, sollten diese nochmals überprüft werden, ob diese tatsächlich übernommen wurden. Weitere Infos
letzte Änderung: 26. März 2006 |
Copyright © 2004 Norbert Eusterholz |