Samba:



Die primäre Aufgabe eines Fileservers ist es nicht nur öffentliche Dateisysteme anzubieten, sondern auch userbezogene Verzeichnisse anzubieten. Linux hat ja für jeden User der dem System bekannt ist, ein Verzeichnis, in dem dieser User alle Rechte bekommt. Er kann dort Dateien und Verzeichnisse anlegen und ist alleiniger Eigentümer dieser Daten. Samba bietet einen sehr einfachen Mechanismus, der einem Windows User erlaubt, sein Home-Verzeichnis auf dem Linux-Rechner zu nutzen, wenn sein Username unter Linux der selbe Name wie der unter Windows ist.

Die folgende /etc/smb.conf beinhaltet folgende Features:

  • Userverzeichnisse (/home/username) einbeziehen

  • Umlaute bei den Windowsclients richtig anzeigen

  • versteckte Dateien/Ordner verbergen

  • Schreibberechtigung für usereigne Dateien/Ordner außerhalb der Homedirectory

 

#  /etc/smb.conf start here

[global]

obey pam restrictions = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n
dns proxy = no
encrypt passwords = yes # nötig um auf Homedirectory zugreifen zu können
server string = %h server (Samba %v)
syslog = 0
socket options = TCP_NODELAY
log file = /var/log/samba/log.%m
invalid users = root
max log size = 1000
hosts allow = 192.168.1.1
workgroup = HEIMNETZ
netbios name = Samba
guest account = nobody
keepalive = 30
os level = 2
oplocks = yes
write raw = no
read raw = no
character set = ISO8859-1 # zeigt Umlaute richtig an
veto files = /.?*/.*.*/ # verbirgt versteckte-Files (Files mit .)

[FILES]
comment = filesystem
path = /usr
create mask = 0750
guest ok = Yes
locking = No

[mp3z]

path = /mnt/ftp
guest ok = Yes
comment = mp3z
create mode = 655
force user = termito                       # erlaubt Schreibberechtigung auf eigene Dateien
max connections = 10

[homes]
browseable = No
writeable = yes

#the end

 

Um diese Erweiterung auch aktiv zu machen müssen wir den Samba-Serverdämon neu starten, am einfachsten mit

  /etc/init.d/smb restart

bzw. für ältere Versionen

  /sbin/init.d/smb restart

oder bei SuSE

    rcsmb restart

 

Falls man Samba über die inted laufen lassen möchte, muss folgendes in /etc/inetd.conf eingefügt werden.

   netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
   netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

 

Probleme ab Windows 98

Die Passwort-Weitergabe funktioniert bis Windows 95 ohne Probleme, ab Windows 98 kommt es aber nur zu der Fehlermeldung, das eingegebene Passwort sei falsch. Das liegt nicht daran, dass Sie es falsch eingegeben haben, sondern an einer Eigenschaft von Windows 98/NT/2000/XP, die festlegt, dass Passwörter nicht unverschlüsselt über das Netz gegeben werden. Das ist ja eine eigentlich erfreuliche Eigenschaft, weil es die Sicherheit im Netz vergrößert, aber andererseits funktioniert jetzt der normale Mechanismus der Passwortüberprüfung des Unix-Passworts natürlich nicht mehr.

Es gibt 2 Möglichkeiten dieses Problem zu lösen:

a) Windows dazu zwingen, keine veschlüsselte Passwörter zu verwenden, indem man die Registry bearbeitet:
Start-Ausführen--> regedit
dann [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
ein neues DWORD "EnablePlainTextPassword" eintragen und diesen Wert auf 1 einstellen.

oder

b) Um auf /home/username zugreifen zu können solltet ihr euch bei Windows mit dem gleichen Namen + Passwort anmelden (evtl. in Windows den User erstellen Start/Einstellungen/Systemsteuerung/Benutzer).

Danach müsst ihr eine eigene Passwortverwaltung für den Sambadienst installieren. Das geschieht durch zwei einfache Schritte:

 

  1. Diese Zeile wird in die [global] Sektion der /etc/smb.conf aufgenommen

      encrypt passwords = Yes

  2. Eine spezielle Datei /etc/smbpasswd enthält die Userinformationen über die Samba-User mit ihrer verschlüsselten Passwörter.

Um jetzt also diese Passwort-Datei anzulegen und verschlüsselte Passwörter zu generieren benötigen wir wiederum ein kleines Programm mit Namen smbpasswd. Dieses Programm erlaubt es, sofern es der Superuser root anwendet, neue Samba-User anzulegen und ihnen Passwörter zu vergeben. Ein Normaluser kann nur sein Passwort damit ändern.
Um einen neuen User anzulegen schreibt root jetzt

  smbpasswd -a username

Er wird dann gleich nach dem Passwort des neuen Samba-Users gefragt, das Passwort wird verschlüsselt und zusammen mit der UserID des Users in der Datei /etc/smbpasswd abgelegt.

Die Sektion [homes] ist also - wie die Sektion [global] eine spezielle Möglichkeit. Sie muss grundsätzlich diesen Namen tragen denn Samba übernimmt ja sehr spezielle Ersetzungsmechanismen, wenn dieser share angesprochen wird.