Vorraussetzung: [[Netzwerk]]
====== Einfacher Dateiserver ======
===== Benötigte Pakete =====
Debian, Ubuntu: 
  apt install samba smbclient samba-common-bin
((neuere Versionen manchmal in [[https://packages.debian.org/jessie/samba|Backports]]))
SuSE: 
  zypper install samba samba-client
(( man kann die Pakete unter SuSE auch mit 
  yast -i samba samba-client
installieren ))
Fedora / Centos : 
  yum install samba samba-client
===== Minimal-Konfiguration =====
[global]
…
  workgroup = kurs
…
[freigabe]
  path = /tmp
  writable = yes
…
Überprüfen: (( Debian 6.0, openSuSE 11.4, CentOS 6: Fehlermeldung ''rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)'' kann man ignorieren, siehe http://bugs.debian.org/608624 ))
((Den Fehler
''ERROR: pid directory /var/run/samba does not exist''
kann man auch ignorieren. Das fehlende Verzeichnis wird beim ersten Start von Samba angelegt.
))
  testparm
(( Mit Anzeige der default settings
  testparm -v
))  
===== Samba starten =====
SuSE (ab 14), Centos (ab 7):
  systemctl enable --now smb.service
  systemctl enable --now nmb.service
Ubuntu (ab 14.04), Debian (ab 8):
  service smbd restart
  service nmbd restart
===== Benutzer anlegen =====
Erst Unix-Nutzer:
  useradd -m iw
Dann Windows-Attribute hinzufügen:  
  smbpasswd -a iw
oder
  pdbedit -a -u iw
===== Testen =====
  smbclient -N -L localhost
  smbclient //notebook17/freigabe -U iw
==== Samba Freigabe mounten ====  
Pakete:
''cifs-utils'' ( Debian (ab 6.0), CentOS (ab 7) )
  mkdir /mnt/freigabe
  mount -t cifs -o username=xxx,uid=localuser,gid=localgroup //notebook17/freigabe /mnt/freigabe
(( Warum sehen die Berechtigungen in der Freigabe anders als im lokalen Verzeichnis aus? https://fosdem.org/2019/schedule/event/smb2_posix_extensions/ ))
====== Checkliste ======
===== Syntax-Check für smb.conf ===== 
  testparm
Ausgabe von testparm:
Loaded services file OK.
Server role: ROLE_STANDALONE
===== Netzwerk checken =====
[[netzwerk]]
===== Laufen die Samba Dienste? =====
  netstat -tulpn | grep nmbd
  netstat -tulpn | grep smbd
oder
  lsof -ai -c smbd -P
  lsof -ai -c nmbd -P
===== Windows Browsing =====
  nmblookup -M kurs
===== Existiert ein passender Unix-Account? =====
  getent passwd benutzername
===== Existiert ein passender Samba-Account? =====
  pdbedit -L -v benutzername
Ausgabe von pdbedit:
Unix username:        benutzername
..
Account Flags:        [U          ]
===== Funktioniert der Samba-Account? =====
  smbclient -L localhost -U benutzername
Hier sollten die Freigaben des Servers angezeigt werden.
===== Funktioniert der Zugriff auf die Freigabe? =====
  smbclient //rechnername/freigabe -U benutzername
===== Steht etwas in den Logdateien? =====
Anzahl der Logmeldungen erhöhen:
  smbcontrol smbd debug 2
  smbcontrol nmbd debug 2
  
Logmeldungen besser finden:
[global]
  log file = /var/log/samba/log.%m
Logmeldungen für eine Verbindung:
  smbstatus
-> PID der Verbindung raussuchen
  smbcontrol $PID debug 3
===== Auf Netzwerkebene lauschen =====
  wireshark
z.B. Broadcast vom Typ Browser. Server Type checken ( "Microsoft Windows Browser Protocol" ->  "Server Type" )
====== Dokumentation ======
http://de3.samba.org/samba/docs/man/Samba-HOWTO-Collection/
====== Todo ======
  * Wie kann ich Benutzer einfach umbenennen?