SuSE - Linux 6.3
Konfiguration des SAMBA; die Datei /etc/smb.conf


Zu Samba gibt es ganze Bücher. Daher gebe ich hier nur ein Beispiel einer Samba-Konfiguration.
Ist der Aufbau der Konfigurationsdatei erst einmal klar, so kann man leicht weitere Shares
hinzufügen.
[global]
; meine NT-Domäne.... heisst SERVER1
   workgroup = SERVER1
   guest account = nobody
   keep alive = 30
   os level = 65
   security = share

; Uncomment the following, if you want to use an existing
; NT-Server to authenticate users, but don't forget that
; you also have to create them locally!!!
;  security = server
;  password server = 192.168.1.10
;  encrypt passwords = yes

   printing = bsd
   printcap name = /etc/printcap
   load printers = yes

   socket options = TCP_NODELAY

   map to guest = Bad User

; Uncomment this, if you want to integrate your server
; into an existing net e.g. with NT-WS to prevent nettraffic
;  local master = no

; Please uncomment the following entry and replace the
; ip number and netmask with the correct numbers for
; your ethernet interface.
  interfaces = 192.168.2.100/255.255.255.0

; If you want Samba to act as a wins server, please set
; 'wins support = yes'
; hier NO, den das macht ja mein NT-Server !
   wins support = no

; If you want Samba to use an existing wins server,
; please uncomment the following line and replace
; the dummy with the wins server's ip number.
;   wins server = 192.168.1.1

; Do you wan't samba to act as a logon-server for
; your windows 95/98 clients, so uncomment the
; following:
;   logon script =%U.bat
;   domain logons = yes
;   domain master = yes
; [netlogon]
;   path = /netlogon

[homes]
   comment = Heimatverzeichnis
   browseable = yes
; jeder Schüler darf in das Verzeichns eines anderen reinschauen ....
   public = yes
   read only = no
   create mode = 0750

; The following share gives all users access to the Server's CD drive,
; assuming it is mounted under /cd. To enable this share, please remove
; the semicolons before the lines
;
[cdrom]
   comment = Linux CD-ROM
   path = /cd
   read only = yes
   locking = no

[printers]
   comment = All Printers
   browseable = no
   printable = yes
; jeder darf drucken
   public = yes
   read only = yes
   create mode = 0700
   directory = /tmp

; nun ein Verzeichnis zur allgemeinen Benutzung
[tmp]
   comment = TMP-Verzeichnis
   directory = /tmp
   browseable = yes
   public = yes
   read only = no
   create mode = 0750

Bei den Schüler-Workstations gibt man durch einen Eintrag in der hosts-Datei den
Namen des Linux-Rechners bekannt. Der Eintrag ist dokumentiert und lautet:
192.68.2.100    linux.tmg.de    linux
Mein Linux-Rechner heißt alsolinux und hat die Intranetdomain: tmg,de.
Man könnte den eigenen Rechner auch www nennen. Dann könnte man im schuleigenen
Intranet auf diesen Rechner mit http://www.tmg.dezugreifen.

Nun wird Samba durch

/sbin/init.d/smb stop
/sbin/init.d/smb start
neu gestartet.
In der Netzwerkumgebung ist danach der Linux-Rechner unter dem Namenlinux
sichtbar und jeder kann z.B. auf das Verzeichnis /tmpzugreifen.
Wenn man möchte, kann man weitere Shares (z.B. Programme) anlegen und dorthin auch
Windowsprogramme installieren.

Damit Samba bei jedem Bootvorgang automatisch startet, sucht man in/etc/rc.config den
Eintrag

# start samba? ("yes" or "no")
# Windows 95 / NT  -  File- and Printservices
#
START_SMB="yes"
und startet ihn mit "yes".
Achtung:
Windows 98
Windows98 verwendet nur noch verschlüsselte Paßwörter. Lösung:
Tragen Sie mit Hilfe von regedit folgenden neuen Wert in die Registry ein.
Unter
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
ein neues DWORD "EnablePlainTextPassword" eintragen und diesen Wert auf 1 einstellen. 
Windows NT mit Service-Pack 3
Windows NT verhindert die Übermittlung von unverschlüsselten Passwörtern.
Lösung:
Um weiterhin mit unverschlüsselten Passwörtern arbeiten zu können,
fügen Sie in ihrem NT-Registry-Editor einen neuen DWORD-Schlüssel ein.
Diesen benennen Sie dann nach EnablePlainTextPassword um und
weisen diesem Schlüssel den Wert 1 zu.
Es muß also der Registry Eintrag
EnablePlainTextPassword:REG_DWORD=1
auf Ihrem NT Client unter
HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\rdr\parameters\
einfügt werden.
Es gibt noch eine weitere Möglichkeit:
Samba und NT4.0 und NT4.0 incl. Servicepack 3
(aus der SuSE-Linux-Support-Datenbank)

Symptom:

Ab NT4.0 wird mit verschlüsselten Paßworten gearbeitet. 
Während NT4.0 als 'Fallback' weiterhin mit 
Plaintext-Paßworten arbeiten kann -macht sich dadurch bemerkbar, 
daß man durch wiederholte Angabe des Logins und des Paßwortes einen 
Share mounten kann-, ist NT4.0 incl. Servicepack 3 nicht mehr dazu 
in der Lage (mehr dazu unter /usr/doc/packages/samba/ENCRYPTION.txt). 

Lösung:

Zum einen kann man über einen Eintrag in der Windows-Registry NT dazu bewegen, 
Plaintext-Paßworte zu benutzen (siehe http://www.suse.de/sdb/de/html/samba_ntsp3.html), 
zum anderen kann man die folgende Möglichkeit nutzen: 

   Im Sourcepaket von Samba befindet sich ein Script namens mksmbpasswd.sh. 
   Mit Hilfe dieses Scripts muß eine spezielle Paßwortdatei aus der vorhandenen 
   Paßwortdatei erzeugt werden.


     mksmbpasswd.sh:

     #!/bin/sh
     awk 'BEGIN {FS=":"
             printf("#\n# SMB password file.\n#\n")
             }
     { printf( "%s:%s:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:%s:%s:%s\n", $1, $3, $5, $6, $7) }
     '

     Beispiel: 
        #cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd, oder 
        #ypcat passwd | mksmbpasswd.sh > /etc/smbpasswd auf einem NIS-Server, 
        bzw. -Client. 

     Hinterher sind die Zugriffsrechte auf diese Datei zu setzen: 

        chmod 600 /etc/smbpasswd.
     
     Weiterhin ist zu beachten, daß /etc/smbpasswd von S.u.S.E. als Default in den 
     Sourcen eingestellt wurde. 
     Nachdem /etc/smbpasswd erzeugt wurde, muß für jeden Benutzer noch ein Paßwort generiert 
     werden. Dafür ist das Programm smbpasswd zuständig. Falls jeder beliebige Benutzer das 
     selbst vornehmen soll, so ist das SETUID-Bit zu setzen (chmod u+s /usr/bin/smbpasswd). 
     Ansonsten kann nur der Benutzer 'root' die Paßworte der einzelnen Benutzer setzen. 
     Die Datei /etc/smb.conf muß danach um folgendes erweitert werden (in der global-section): 

             encrypt passwords = yes

Falls man mehrere Samba-Maschinen im Netz hat, so muß die o.g. Prozedur nicht auf jeder dieser 
Rechner durchgeführt werden. Es ist nämlich möglich, Samba so zu konfigurieren, daß die Paßworte 
von einem anderen Rechner (NT-Server oder ein anderer Samba-Server) geholt werden. Dazu muß folgendes 
in die global-section eingefügt werden: 

        security = server
        password server = YOURSERVER

wobei zu beachten ist, daß 'YOURSERVER' der NetBIOS-Name des Rechners ist (NetBIOS- und DNS-Namen 
können unterschiedlich sein; NetBIOS-Namen haben eine maximale Länge von 15 Buchstaben), und daß 
die obigen Einträge nicht auf dem Paßwortserver selbst eingetragen werden, da es sonst zu Loops 
kommen kann.

WICHTIG:
Sie sollten auf jeden Fall eine möglichst aktuelle Version von Samba benutzen 
(mindestens Version 1.9.18p2 ist zu empfehlen)


Windows 2000
Auch Windows 2000 übermittelt die Passwörter verschlüsselt.
Um Passwörter unverschlüsselt an den SAMBA-Server zu übermitteln,
kann ein entsprechender Eintrag in der Registry von Win2000 gesetzt
werden.

Fügen Sie hierzu in:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters
den Eintrag (DWORD): EnablePlainTextPassword=1
hinzu.Danach sollte SAMBA das nun unverschlüsselte Passwort verstehen.


Roland Bernert, Dezember 1999