Benutzer-Werkzeuge

Webseiten-Werkzeuge


samba

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
samba [2016-07-25 22:15:58] – [Samba-Server] manfredsamba [2026-01-05 23:28:31] (aktuell) – [montieren] manfred
Zeile 1: Zeile 1:
 +====== Samba ======
 +
 +  * [[http://www.samba.org/cifs/docs/what-is-smb.html]]
 +
 +
 +===== Client =====
 +
 +
 +==== Kommandozeile ====
 +
 +  aptitude -y install smbclient
 +
 +Alle Samba-Server im Netz zeigen.
 +
 +mit den Rechten eines bestimmten Benutzers:
 +  # smbtree -U fritz
 +
 +anonym (klappt aber nicht immer bzw. überall):
 +  # smbtree -N
 +  
 +  WORKGROUP
 +          \\VENUS                         Samba 3.0.23c
 +                  \\VENUS\IPC$            IPC Service (Samba 3.0.23c)
 +                  \\VENUS\HDD1
 +
 +
 +  # smbtree -S -N
 +  WORKGROUP
 +          \\VENUS                         Samba 3.0.23c
 +
 +
 +Alle Freigaben auf dem Rechner //venus// zeigen:
 +  # smbclient -L venus -N
 +  
 +  Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.23c]
 +  
 +          Sharename       Type      Comment
 +          ---------       ----      -------
 +          HDD1            Disk      
 +          IPC$            IPC       IPC Service (Samba 3.0.23c)
 +  Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.23c]
 +  
 +          Server               Comment
 +          ---------            -------
 +          VENUS                Samba 3.0.23c
 +  
 +          Workgroup            Master
 +          ---------            -------
 +          WORKGROUP            VENUS
 +
 +
 +Alle Freigaben auf dem Rechner //mediabox// zeigen:
 +  # smbclient -L mediabox -N
 +  WARNING: The "username" option is deprecated
 +  Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.23c]
 +  
 +          Sharename       Type      Comment
 +          ---------       ----      -------
 +          HDD1            Disk      
 +          IPC$            IPC       IPC Service (Samba 3.0.23c)
 +  Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.23c]
 +  
 +          Server               Comment
 +          ---------            -------
 +          FANTEC               Samba 3.0.23c
 +          PSD28958             
 +  
 +          Workgroup            Master
 +          ---------            -------
 +          WORKGROUP            FANTEC
 +
 +
 +Alle Freigaben auf dem Rechner //venus// zeigen, wenn der Netbios-Name und der DNS-Name nicht gleich sind:
 +
 +  # smbclient -L venus -I 192.168.1.1 -N
 +  
 +  # smbclient -A /root/.mount -L //venus/
 +
 +Einloggen in die Freigabe //HDD1//:
 +
 +  # smbclient //venus/HDD1 -N
 +  
 +  Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.23c]
 +  Server not using user level security and no password supplied.
 +  smb: \>
 +  smb: \> exit
 +
 +
 +Als //fritz// in die Freigabe //HDD1// einloggen:
 +
 +  # smbclient //venus/HDD1 -U fritz
 +
 +
 +Passwortlos in die Freigabe //HDD1// einloggen:
 +
 +  # smbclient //venus/HDD1 -A identifikation.txt
 +
 +  # vi /root/identifikation.txt
 +  
 +  username = fritz
 +  password = geheim
 +  domain = WORKGROUP
 +
 +Alles in einem Aufruf:
 +  > smbclient //windowsrechner/Freigabe Passwort -I 10.11.12.13 -W Workgroup -U Benutzername
 +  smb: \>
 +  
 +  > smbclient //windowsrechner/Freigabe Passwort -I 10.11.12.13 -W Workgroup -U Benutzername -c "ls Verzeichnis01/Verzeichnis02/Verzeichnis03"
 +    .                                          0  Fri Jul 16 03:17:52 2021
 +    ..                                  D        0  Fri Jul 16 03:17:52 2021
 +    datei_01.ide                        A    23834  Sun May 30 17:52:29 2021
 +    datei_02.ide                        A    22131  Thu Jun 10 22:32:14 2021
 +    datei_03.ide                        A    24368  Mon Jul  5 20:12:13 2021
 +
 +
 +==== montieren ====
 +
 +  > aptitude -y install smbfs
 +
 +  > mount //192.168.1.1/HDD1 /mnt/ -t cifs -o guest
 +
 +  > mount //192.168.1.1/HDD1 /mnt/ -t cifs -o cred=/root/identifikation.txt
 +
 +  > mount //192.168.1.1/HDD1 /mnt/ -t cifs -o noperm,iocharset=utf8,rw,file_mode=0775,dir_mode=0775,cred=/root/identifikation.txt //192.168.1.1/HDD1 /mnt/
 +
 +  > mount //192.168.1.1/HDD1 /mnt/ -t cifs -o nobrl,sfu,serverino,noperm,intr,hard,directio,uid=1000,gid=1000,rw,user,cred=/root/identifikation.txt
 +
 +  > mount //venus/HDD1 /mnt/ -o fstype=cifs,ip=192.168.1.1,nobrl,sfu,serverino,noperm,intr,hard,directio,gid=1000,noacl,ro,user,cred=/root/identifikation.txt
 +
 +Seit Ubuntu-Version 11.04 sollte man die Option "mapchars" entfernen.
 +
 +  > mount //windowsrechner/Freigabe/Verzeichnis01/Verzeichnis02/Verzeichnis03 /mnt -t cifs -o ip=10.11.12.13,vers=2.0,nobrl,sfu,serverino,noperm,intr,hard,gid=1000,noacl,ro,user,username=Benutzername,password=Passwort,domain=Workgroup
 +
 +  > apt install cifs-utils
 +  > mount //192.168.1.1/HDD1 /mnt/ -t cifs -o ro,ip=192.168.1.1,nobrl,sfu,serverino,noperm,intr,hard,noperm,cred=/root/identifikation.txt
 +
 +
 +==== FreeBSD ====
 +
 +  * [[::FreeBSD:FreeBSD - smbFS]]
 +
 +
 +==== AutoFS / Automount (Linux) ====
 +
 +Ubuntu 20.04
 +  # apt install smbclient autofs cifs-utils
 +
 +ältere Linux-Versionen
 +  # aptitude -y install autofs smbfs smbclient
 +  # mkdir -p /etc/autofs/
 +
 +  # vi /etc/autofs/auto.server
 +  venus -fstype=cifs,ip=192.168.1.1,nobrl,sfu,serverino,noperm,intr,hard,directio,gid=1000,noacl,rw,user,cred=/root/identifikation.txt //venus/HDD1
 +  multimedia -fstype=cifs,ip=192.168.1.2,nobrl,sfu,serverino,noperm,intr,hard,directio,gid=1000,noacl,rw,user,cred=/root/.mount.multimedia ://samba/multimedia
 +  tmp             -fstype=cifs,vers=3.0,rw,noperm,nosetuids,ip=192.168.1.1,uid=1000,gid=1000,credentials=/root/identifikation.txt       ://server.lan/tmp
 +
 +  # vi /etc/auto.master
 +  /cifs         /etc/autofs/auto.server -t 6
 +
 +  # /etc/init.d/autofs restart
 +
 +  # ln -s /cifs/venus /home/
 +  # ln -s /cifs/multimedia /home/
 +
 +  # ls -lha /home/venus/
 +  # ls -lha /home/multimedia/
 +
 +Jetzt wird ''/venus/HDD1'' bzw. ''/samba/multimedia'' immer nur bei Bedarf gemountet und nach 6 Sekunden inaktivität, wieder ausgehängt.
 +
 +Ubuntu 20.04 LTS:
 +  > echo "/cifs   /etc/auto.cifs -g -t 10" >> /etc/auto.master
 +  > touch /etc/auto.cifs.windowsrechner
 +  > chmod 0600 /etc/auto.cifs.windowsrechner
 +  > echo "username=Benutzername" >> /etc/auto.cifs.windowsrechner
 +  > echo "password=Passwort" >> /etc/auto.cifs.windowsrechner
 +  > echo "domain=Workgroup" >> /etc/auto.cifs.windowsrechner
 +  > echo "windowsrechner        -fstype=cifs,vers=2.0,rw,user,noauto,exec,ip=10.11.12.13,uid=1000,gid=1000,credentials=/etc/auto.cifs.windowsrechner         ://windowsrechner/Freigabe" >> /etc/auto.cifs
 +  > service autofs restart
 +  > ls -lha /cifs/windowsrechner
 +
 +
 +===== Samba-Server =====
 +
 +
 +==== installation von Samba 4.6 ====
 +
 +  > smbd -b | grep "CONFIGFILE"
 +    CONFIGFILE: /usr/local/etc/smb4.conf
 +
 +  > mv /var/db/samba4/private /var/db/samba4/private_original
 +  > ln -s /home/etc/samba4/private /var/db/samba4/private
 +
 +  > testparm -v
 +  > echo "samba_server_enable=YES" >> /etc/rc.conf
 +
 +die SHARE-Namen sollten nur max. 12 Zeichen lang sein
 +
 +  > service samba_server status
 +  nmbd is not running.
 +  smbd is not running.
 +
 +  > service samba_server start
 +  Performing sanity check on Samba configuration: OK
 +  Starting nmbd.
 +  Starting smbd.
 +
 +  > service samba_server status
 +  nmbd is running as pid 68580.
 +  smbd is running as pid 68584.
 +
 +  > ps ax | fgrep -v grep | egrep "samba|smbd|nmbd|winbindd"
 +  68794  -  Ss      0:00,00 /usr/local/sbin/nmbd --daemon --configfile=/usr/local/etc/smb4.conf
 +  68798  -  Ss      0:00,02 /usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf
 +  68800  -  S       0:00,00 /usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf
 +  68801  -  S       0:00,00 /usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf
 +  68803  -  S       0:00,00 /usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf
 +
 +  > smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
 +     LOCKDIR: /var/db/samba4
 +     STATEDIR: /var/db/samba4
 +     CACHEDIR: /var/db/samba4
 +     PRIVATE_DIR: /var/db/samba4/private
 +
 +<file bash /usr/local/etc/smb4.conf>
 +### Samba 4.0 - Binary: ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.2-release/Latest/samba4.tbz
 +# server role = active directory domain controller
 +# server services = +smb
 +# dcerpc endpoint servers = remote
 +# start smbd/nmbd/winbindd instead for domain member and standalone file server tasks
 +
 +# https://wiki.samba.org/index.php/Samba4/s3fs
 +# https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
 +
 +[global]
 +        unix charset = UTF8
 +        workgroup = ENERGIE
 +        server string = ERDE
 +        interfaces = 192.168.2.1/24
 +        bind interfaces only = Yes
 +        passdb backend = smbpasswd
 +        smb passwd file = /home/etc/samba4/private/smbpasswd
 +        log file = /var/log/samba.log
 +        max log size = 50
 +        min protocol = NT1
 +        disable netbios = Yes
 +        enable asu support = Yes
 +        socket options = TCP_NODELAY IPTOS_LOWDELAY
 +        #socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
 +        os level = 64
 +        preferred master = Yes
 +        domain master = Yes
 +        dns proxy = No
 +        ##socket address = 192.168.2.1
 +        usershare prefix allow list = /tmp, /Export
 +        usershare prefix deny list = /etc, /dev, /boot, /root
 +        idmap config * : backend = tdb
 +        invalid users = root, @wheel
 +        valid users = kontor, multimedia, kinder, fritz, fratz
 +        create mask = 0664
 +        directory mask = 0775
 +        hosts allow = 127., 192.168.2.
 +#       aio read size = 65536
 +#       aio write size = 65536
 +        write cache size = 262144
 +        case sensitive = Yes
 +        fstype = Samba
 +        ### Samba 4.0 - Binary: ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.2-release/Latest/samba4.tbz
 +#       server services = +smb -s3fs
 +        dcerpc endpoint servers = +unixinfo +browser
 +        enable core files = no
 +        client max protocol = SMB3
 +        #
 +        load printers = no
 +        printable = no
 +        #
 +        #tls enabled = No
 +        #tls keyfile =
 +        #tls certfile =
 +        #tls cafile =
 +        #tls crlfile =
 +        #tls dh params file =
 +
 +[cdrom]
 +        comment = cdrom
 +        path = /cdrom
 +        valid users = kontor
 +        force user = kontor
 +        force group = kontor
 +        read only = Yes
 +        create mask = 0660
 +        directory mask = 0770
 +
 +[kontor]
 +        comment = kontor
 +        path = /home/kontor
 +        valid users = kontor
 +        force user = kontor
 +        force group = kontor
 +        read only = No
 +        create mask = 0660
 +        directory mask = 0770
 +
 +[tmp]
 +        comment = Tmp
 +        path = /tmp
 +        valid users = kontor, multimedia
 +        force user = kontor
 +        force group = kontor
 +        read only = No
 +        create mask = 0660
 +        directory mask = 0770
 +
 +[mm]
 +        comment = "Verzeichnis mit Multimediadaten"
 +        path = /Export/mm
 +        valid users = multimedia
 +        force user = multimedia
 +        force group = dlna
 +        read only = No
 +        create mask = 0660
 +        directory mask = 0770
 +
 +[kinder]
 +        comment = "Verzeichnis mit Multimediadaten für Kinder"
 +        path = /Export/kinder
 +        valid users = kinder
 +        force user = kinder
 +        force group = dlna
 +        read only = No
 +        create mask = 0660
 +        directory mask = 0770
 +
 +[freecom]
 +        comment = "Freecom - Laufwerk"
 +        path = /Freecom
 +        valid users = fritz, fratz
 +        force user = fritz
 +        force group = fritz
 +        read only = No
 +        create mask = 0666
 +        directory mask = 0777
 +</file>
 +
 +
 +==== Benutzer anlegen in Samba 3.4 ====
 +
 +ACHTUNG!\\
 +__Die Benutzer, die mit ''smbpasswd'' Samba bekannt gemacht werden, dürfen **nicht** in der Gruppe ''"0"'' sein!\\
 +Sonst bekommt man den Fehler ''NT_STATUS_ACCESS_DENIED''.__
 +
 +Als erstes muss natürlich Samba installiert werden:
 +  # aptitude -y install samba
 +
 +Dann brauchen wir einen Systemuser:
 +  # useradd fritz
 +
 +Samba muss den Benutzer natürlich auch kennen:
 +  # smbpasswd -a fritz
 +
 +oder für Scripte so:
 +  # echo -e "geheim\ngeheim" | smbpasswd -s -a fritz
 +
 +Das "-e" hinter dem ''echo'' und das "\n" zwischen den Passwortwiederholungen
 +sind sehr wichtig, sonst funktioniert das automatische Anlegen des Benutzers nicht!
 +
 +so wird das Passwort in der Samba-Datenbank geändert:
 +  > smbpasswd -U fritz
 +  New SMB password:
 +  Retype new SMB password:
 +
 +man kann auch Benutzer wieder aus der SMB-Datenbank entfernen:
 +  > smbpasswd -x root
 +  smb_delete_user: Refusing to delete local system root account!
 +  Deleted user root.
 +
 +alle User, die Samba kennt, kann man so sehen:
 +  > pdbedit -L
 +  Ignoring unknown parameter "dcerpc endpoint servers"
 +  Ignoring unknown parameter "client max protocol"
 +  fritz:1000:User &
 +
 +  > pdbedit -Lv
 +  ---------------
 +  Unix username:        fritz
 +  NT username:
 +  Account Flags:        [U          ]
 +  User SID:             S-1-5-21-2557483769-2213720445-2638791776-9000
 +  Primary Group SID:    S-1-5-21-2557483769-2213720445-2638791776-513
 +  Full Name:            Benutzer
 +  Home Directory:       \\server\sysop
 +  HomeDir Drive:
 +  Logon Script:
 +  Profile Path:         \\server\fritz\profile
 +  Domain:               GRUPPE
 +  Account desc:
 +  Workstations:
 +  Munged dial:
 +  Logon time:           0
 +  Logoff time:          never
 +  Kickoff time:         never
 +  Password last set:    Sa., 06 Nov. 2010 23:55:34 CET
 +  Password can change:  Sa., 06 Nov. 2010 23:55:34 CET
 +  Password must change: never
 +  Last bad password   : 0
 +  Bad password count  : 0
 +  Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
 +
 +Passwort ändern:
 +  > echo 'geheim' | pdbedit -u fritz -t
 +
 +Benutzerdaten ändert:
 +  > pdbedit -ru fritz
 +
 +Benutzer aus der Samba-Datenbank löschen:
 +  > pdbedit -xu fritz
 +
 +Benutzer-Datenbank exportieren:
 +  > pdbedit -e smbpasswd:/pfad/zum/Archiv/samba-users.backup
 +
 +Benutzer-Datenbank importieren:
 +  > pdbedit -i smbpasswd:/pfad/zum/Archiv/samba-users.backup
 +
 +Jetzt muss Samba (smb.conf) noch konfiguriert werden:
 +
 +
 +==== /etc/samba/smb.conf - allgemeines Beispiel ====
 +
 +  workgroup = ARBEITSGRUPPE
 +  netbios name = SERVERNAME
 +  server string = Samba %v (%h)
 +  security = user
 +  hosts allow = 127. 172.0. 192.168.0.
 +  load printers = no
 +  log file = /var/log/samba/samba.log.%m
 +  socket options = TCP_NODELAY
 +  local master = yes
 +  os level = 64
 +  domain master = yes
 +  preferred master = yes
 +  disable netbios = yes
 +  invalid users = root
 +  strict sync = yes
 +  sync always = yes
 +  kernel oplocks = yes
 +  unix extensions = yes
 +  case sensitive = yes
 +  
 +  [Freigabe]
 +     comment = Bemerkung
 +     path = /pfad/verzeichnis
 +     read only = no
 +     browseable = yes
 +     public = no
 +     valid users = fritz fratz
 +
 +
 +==== /etc/samba/smb.conf - konkretes Beispiel ====
 +
 +  [global]
 +          workgroup        = WORKGROUP
 +          server string    = Samba Server
 +          netbios name     = FreeBSD-Server
 +          wins support     = Yes
 +          hosts allow      = 192.168.1. 192.168.2. 127.
 +          log file         = /var/log/%m.log
 +          max log size     = 50
 +          security         = share
 +  ;       security         = user
 +  ;       security         = server
 +  ;       force user       = nobody
 +  ;       force group      = nogroup
 +          socket options   = TCP_NODELAY
 +          os level         = 33
 +          domain master    = yes
 +          preferred master = yes
 +          dns proxy        = no
 +          client code page = 850
 +  
 +  [printers]
 +          comment          = All Printers
 +          path             = /var/spool/samba
 +          browseable       = no
 +          guest ok         = no
 +          writeable        = no
 +          printable        = yes
 +  
 +  [tmp]
 +          comment          = Temporaerer Dateiraum
 +          path             = /tmp
 +          read only        = no
 +          public           = yes
 +          browseable       = yes
 +          create mask      = 0777
 +  
 +  [homes]
 +          comment          = Homeverzeichnis
 +          valid users      = %S
 +          read only        = No
 +          browseable       = No
 +          writeable        = yes
 +          create mask      = 0700
 +  
 +  [var-tmp]
 +          comment          = allgemeines Dateilager
 +          path             = /var/tmp
 +          read only        = No
 +          public           = yes
 +          writeable        = yes
 +          printable        = no
 +          browseable       = Yes
 +
 +Glücklicherweise braucht man Samba jetzt **nicht** neu zu starten!
 +
 +
 +====== SWAT =====
 +
 +SWAT ist ein grafisches Konfigurationswerkzeug für Samba.
 +
 +
 +==== SWAT aktivieren ====
 +
 +Hat man Samba mit SWAT installiert, dann kann man SWAT aktivieren
 +in dem man in der Datei "///etc/inetd.conf//" die Zeile mit "swat" am Anfang
 +durch das entfernen des "#" aktiviert:
 +  > vi /etc/inetd.conf
 +  ...
 +  #
 +  # Enable the following two entries to enable samba startup from inetd
 +  # (from the Samba documentation).  Enable the third entry to enable the swat
 +  # samba configuration tool.
 +  #
 +  #netbios-ssn stream tcp       nowait          root    /usr/local/sbin/smbd    smbd
 +  #netbios-ns dgram udp wait            root    /usr/local/sbin/nmbd    nmbd
 +  swat  stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat
 +
 +Läuft Samba/SWAT auf einem Linux, dann muss es in der Datei [[http://gertranssmb3.berlios.de/output/SWAT.html#xinetd|/etc/xinetd.d/swat]] durch das setzen einer Variablen aktiviert werden (alternativ kann man die Zeile auch, mit einem "#", auskommentieren):
 +  disable = no
 +  only_from = 127.0.0.1 192.168.100.0
 +
 +und anschließend den INETD neu startet:
 +  > service inetd restart
 +
 +Jetzt kann man die SWAT-Oberfläche mit "http://server:901/" im Browser aufrufen (an Stelle von "__server__" muss natürlich die IP oder der Name des Samba-Servers stehen).
 +
 +
 +==== Problembehebung ====
 +
 +Bekommt man jetzt im Browser ein **//Access Denied.//** angezeigt,
 +dann fehlt u.U. noch der Benutzer "root" in der Samba-User-Datenbank.
 +
 +Dieses Problem kann vier verschiedene Ursachen haben:
 +  - man darf den Server-Namen nicht in der SWAT-URL-Zeile verwenden sondern nur die IP, das war bei mir (trotz funktionierendem DNS) der Fall;
 +  - man muss den Port 901/swat in der Datei ///etc/hosts.allow// extra erlauben;
 +  - der Benutzer "root" wird in der SMB-Datenbank verlangt (gelegentlich bei Linux-Distributionen);
 +  - SWAT hat nur lokal den Port 901 geöfnet;
 +
 +Lösung für Problem "1":
 +  http://192.168.100.1:901
 +
 +Lösung für Problem "2":
 +  > vi /etc/hosts.allow
 +  ...
 +  # Swat - Samba port 901
 +  swat : 192.168.100. : allow
 +  swat : ALL : deny
 +
 +Lösung für Problem "3":
 +  > smbpasswd -a root
 +  New SMB password:
 +  Retype new SMB password:
 +  Added user root.
 +
 +Lösung für Problem "4":
 +Dann kann man den [[http://gertranssmb3.berlios.de/output/SWAT.html#id2598261|Port 901 mit SSL umleiten]] oder einen [[SSH-Tunnel]] bauen.
 +