Dies ist mein Weg zu einem Debian Samba Server unter Etch oder Lenny. Eine Anleitung für einen Linux Dateiserver oder Neudeutsch Fileserver war schon lange fällig, aber Swat und ich sind uns nicht grün und eine Samba-Anleitung ohne Swat schien mir zu komplex für ein Linux Howto. Egal, dann halt ohne Swat!

Samba Dateiserver – Mein Auftrag

In den letzten zwei Wochen hatte ich das Vergnügen zwei Linux Fileserver, einen unter Debian Etch und den anderen unter Debian Lenny, einzurichten. Ich dokumentiere hier (teilweise) mein Vorgehen. Das Netzwerk-Umfeld sah so aus:

Anleitung Samba Dateiserver per Copy & Paste

Dieses Samba Howto ist als quick & dirty zu verstehen, d.h. jede Zeile vom Tutorial in die Shell kopieren (ggf. noch anpassen) und ausführen.

Meine Anleitungen dienen mir selbst teilweise als Wiki, d.h. dieses Samba Wiki ändert sich auch von Zeit zu Zeit. Darüber hinaus ist das Howto eher für den privaten Bereich gedacht bis hin zu einem Small Business Network. Es soll nachvollziehbar sein auch nach ein paar Jahren.

Ich verwende hier Samba 3.0 . Bitte die Erläuterungen im Anschluss lesen.

Installation Samba

dateiserver ~:# apt-get install samba

Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  openbsd-inetd inet-superserver smbldap-tools ldb-tools
The following NEW packages will be installed
  samba
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
...
...
Importing account for root...ok
...
Importing account for nagios...ok
Adding group `sambashare' (GID 110) ...
Done.
Starting Samba daemons: nmbd smbd.

Samba-Gruppen anlegen

fileserver :~# addgroup smball

fileserver :~# addgroup smbusers

fileserver :~# addgroup smbadmins

Ordner für die Gruppen anlegen

fileserver :~# mkdir /home/groupsmball

fileserver :~# mkdir /home/groupsmbusers

fileserver :~# mkdir /home/groupsmbadmins

fileserver :~# chown root:smball /home/groupsmball/

fileserver :~# chown root:smbusers /home/groupsmbusers/

fileserver :~# chown root:smbadmins /home/groupsmbadmins/

fileserver :~# chmod 770 /home/groupsmbusers/

fileserver :~# chmod 770 /home/groupsmbadmins/

fileserver :~# chmod 2770 /home/groupsmball/

Konfiguration des Samba Servers

Sicherung Original-Konfiguration smb.conf

dateiserver ~:# cp /etc/samba/smb.conf /etc/samba/smb.conf_original

Alte smb.conf löschen

dateiserver ~:# rm /etc/samba/smb.conf

Neue smb.conf einfügen und nach Bedarf ändern

dateiserver ~:# mcedit /etc/samba/smb.conf

Inhalt der neuen smb.cof

[global]
# Arbeitsgruppe
workgroup = <NAME DER WORKGROUP>

# Zugriff per "share" oder "user"
# security = share
security = user
# nur notig bei security  = user
encrypt passwords = yes 

# Network Neighbourhood
netbios name = <NAME DES SERVERS>

#Genutze Adapter; bei einem eigentlich nicht notwendig
; interfaces = 192.168.1.2/24
; bind interfaces only = yes

# NT Beschreibung
server string = Server Samba %v 

# Speeddoping
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 

#IP-Zugriffsbeschraenkungen; das ";" entfernen um die IP-Listen zu aktivieren
;   hosts allow = 127. 192.168.1.1 192.168.1.2 192.168.1.3
;   hosts deny = 0.0.0.0/0
########## Homeverzeichnisse #########
[homes]
comment = homes
read only = no
create mask = 0700
browseable = no 

#####Share-Verzeichnisse

# Namen in eckigen Klammern sind frei waehlbar
[sbmusers]
comment = Freigabe smbusers
path = /home/groupsmbusers
read only = no

#
; valid users:
; admin users: chef

[smbadmins]
comment = Freigabe smbadmins
path = /home/groupsmbadmins
read only = no 

[smball]
comment = smball
path = /home/groupsmball
read only = no
create mask = 770
directory mask = 770

Nach dem Speichern die smb.conf testen über

dateiserver ~:# testparm

Samba Server kann nun neu gestartet werden:

dateiserver ~:# /etc/init.d/samba restart

Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd

Benutzer für Samba einrichten und Gruppen zuweisen

Einfachen Benutzer anlegen:

samba server :~# useradd -g smbusers -G smball -m <NAME>

samba server :~# chmod 700 /home/<NAME>

samba server :~# smbpasswd -a <NAME>

New SMB password:
Retype new SMB password:
Added user test.

Erweiterten Benutzer anlegen:

samba server :~# useradd -g smbadmins -G smball,smbusers -m <NAME>

samba server :~# chmod 700 /home/<NAME>

samba server :~# smbpasswd -a <NAME>

New SMB password:
Retype new SMB password:
Added user test.

Fertig ist der Samba-Server!!

Erläuterungen zum Howto

Samba3 Konfigurationserweiterungen

Eine Gastfreigabe könnte man wahrscheinlich (von mir ungetestet) so anlegen

[gaeste]
path = /home/gaeste
# Auch Gäste dürfen auf die Freigabe zugreifen
guest ok = yes
# Angemeldete Benutzer dürfen auch schreiben
writeable = yes
browseable = yes

# Rechte bei neuen Dateien/Verzeichnissen
# Neue Dateien werden mit diesen Rechten versehen
create mode = 0664
# Neue Verzeichnisse werden mit diesen Rechten versehen
directory mode = 0775

# Benutzer und Gruppenzugehörigkeit
# Erzwungene Kennung am Server anmeldet
force user = tester
# Daten werden mit diesen Dateizugehörigkeiten abgelegt
force group = users

Will man einfach Freigaben ohne Benutzer- und Passwortabfrage

username map = /etc/samba/smbusers
map to guest = bad user
guest account = nobody

...Freigaben...

Benutzerverwaltung

Neuen einfachen System-Benutzer einrichten über

samba server :~# useradd -g smbusers -G smball –m <NAME>

Der Systembenutzer ist Mitglied der Gruppen:

Neuen System-Benutzer mit erweiterten Rechten einrichten über

samba server :~# useradd -g smbadmins -G smball,smbusers –m <NAME>

Der Systembenutzer ist Mitglied der Gruppen:

Vorhandenen Nutzer verändern (Bsp. User zu Admin machen)

samba server :~# usermod -G smbadmins,smball <NAME>

Erläuterungen zu usermod und useradd:

-g Hauptgruppe

-G weitere Gruppenzugehörigkeiten

Samba-Benutzerverwaltung

Eigentliche Anmeldung eines Benutzers für Samba

samba server :~# smbpasswd -a <NAME>

Benutzer löschen

samba server :~# smbpasswd -x <NAME>

Zusätzlich Benutzer im System inklusive Home-Verzeichnis löschen

samba server :~# userdel -r <NAME>

GRUPPENVERZEICHNISSE und GRUPPENVERWALTUNG

Gruppen:

samba fileserver:~# smbusers - eingeschränkte Rechte
samba fileserver:~# smbadmins - erweiterte Rechte
samba fileserver:~# smball - smbuser und smbadmins haben Zugriff

Gruppen anlegen:

samba fileserver:~# addgroup smbusers
samba fileserver:~# addgroup smbadmins
samba fileserver:~# addgroup smball

Gruppenverzeichnisse erstellen

samba dateiserver :~# mkdir -p /home/groupsmbusers
samba dateiserver :~# mkdir /home/groupsmbadmins
samba dateiserver :~# mkdir /home/groupsmball

Eigentumsrechte für gemeinsame Order ändern

samba dateiserver :~# chown root.smbusers /home/groupsmbusers
samba dateiserver :~# chown root.smbadmins /home/groupsmbadmins
samba dateiserver :~# chown root.smball /home/groupsmball

Schreibrechte für gemeine Ordner änder

dateiserver :~# chmod 770 /home/groupsmbusers
dateiserver :~# chmod 770 /home/groupsmbadmins

dateiserver :~# chmod 2770 /home/groupsmball

Die 2 von 2770 bedeutet Set Group ID Bit. Man kann gemeinsame Ordner auf diese Art einrichten. Ist dieser Bit gesetzt, dann vererbt sich die Benutzergruppe beim Erstellen eines neuen Unterordners / Datei mit. Man kann somit einen gemeinsamen Ordner einrichten, in dem mehrere Benutzer Dateien/Ordner erstellen können. Allerdings werden die Zugriffsrechte nicht vererbt, sondern richten sich weiterhin nach der aktuell eingestellten umask. Siehe dazu später in der Samba-Konfiguration.

Samba Fehlersuche

Konfiguration von Samba mit

dateiserver ~# testparm 

Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[sbmusers]"
Processing section "[smbadmins]"
Processing section "[smball]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions 

[global]
        workgroup = <NAME DER WORKGROUP>
        netbios name = <NAME DES SERVERS>
        server string = Server Samba %v
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 

[homes]
        comment = homes
        read only = No
        create mask = 0700
        browseable = No 

[sbmusers]
        comment = Freigabe smbusers
        path = /home/groupsmbusers
        read only = No 

[smbadmins]
        comment = Freigabe smbadmins
        path = /home/groupsmbadmins
        read only = No 

[smball]
        comment = smball
        path = /home/groupsmball
        read only = No
        create mask = 0770
        directory mask = 0770

Gruppen überprüfen mit

samba dateiserver  ~# tail -n3 /etc/group

smball:x:1003:
smbusers:x:1004:
smbadmins:x:1005:

Gruppenzugehörigkeit überprüfen mit

samba dateiserver  ~# cat /etc/group

smbusers:x:1001:tester
smbadmins:x:1002:admin
smball:x:1003:tester,admin

Berechtigungen der Ordner überprüfen

samba dateiserver ~# ls -l /home/

drwxrwx--- 2 root     smbadmins 4096 2009-04-01 11:36 groupsmbadmins
drwxrws--- 2 root     smball    4096 2009-04-01 11:35 groupsmball
drwxrwx--- 2 root     smbusers  4096 2009-04-01 11:35 groupsmbusers

Wichtig: groupsmball muss 2770 sein!!

Test des lokalen Zugriffs auf ein Share / eine Samba Freigabe

samba dateiserver  ~# smbclient -U timbob //server2/smball
Password:
Domain=[SERVER2] OS=[Unix] Server=[Samba 3.0.24]
smb: \>

Samba Log

Die Samba Logfiles liegen unter /var/log/samba/

Weitere relevante Beiträge:

  1. Samba Server Backups mit Backup-Manager
  2. Debian Linux Dienste überwachen mit Monit
  3. FreeNX Server / NX Free Edition auf Debian Linux Etch / Lenny

Abonniere den RSS-Feed um auf dem Laufenden zu bleiben
Auf dem Laufenden bleiben ueber Twitter

5 Kommentare zu Anleitung Installation Samba Server als Dateiserver unter Debian Linux

  1. Loader am 12. Juli 2009 15:50

    Heyho,
    da hast du 2 kleine Fehler, bei “Inhalt der neuen smb.cof” (fehlt das n bei conf) und im Textfeld darunter:

    # Namen in eckigen Klammern sind frei waehlbar
    [sbmusers]
    comment = Freigabe smbusers

    da steht sbmusers anstatt smbusers… denke, dass das ein einfacher tippfehler ist ^^
    Greetz

  2. Steffen am 27. August 2009 08:16

    Hi,

    geiles howto. Wäre nice, das auch als PDF download anzubieten.

    Steffen

  3. onebit am 12. Oktober 2009 11:39

    Klasse Anleitung!
    Werde danach meinen Samba mal überprüfen :)

    Und an meinen “Vorkommentator”, ich habe die Webseite als PDF “ausgedruckt”!
    Datei -> Drucken -> in Datei drucken -> Ausgabeformat .pdf – funkioniert einwandfrei.
    Ach so, halt, unter Linux!!!! Klar!

    Also Danke nochmal für Ihre Arbeit, Herr Bormann!

  4. alex am 20. November 2009 10:13

    Cool, hat auf anhieb geklappt.

  5. anybody2000 am 27. Dezember 2009 13:20

    Hi Tim,
    Vielen Dank für den Artikel.
    Ohne deine Seite wäre ich als Linux Frischling ziemlich aufgeschmissen.
    Mach weiter so!

    Gruß

Kommentar hinterlassen