samba server (inleiding)
Een samba server gebruikt het SMB (server message block) protocol (soms ook CIFS genoemd) om file- en printer-shares aan te maken.
wikipedia: https://en.wikipedia.org/wiki/Server_Message_Block
- installatie
Het packetsamba
bevat de samba-server. Je kan deze installeren met:
$ sudo apt-get install samba
tijdens de installatie worden een dertigtal pakketten geinstalleerd, o.a.:samba samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules
- minimale configuratie
Tijdens de installatie wordt een standaard config-file
/etc/samba/smb.conf
neergezet, met enkele veelgebruikte opties. Om samba te leren is het echter beter te beginnen met de allereenvoudigste configuratie:
Sla de default config op en begin een nieuwe configuratie:
$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.example
$ sudo nano /etc/samba/smb.conf
[global] workgroup=lokaal800 [brussel] path=/home/ketje comment=eerste share met samba
In [global] plaatsen we de algemene-configuratie,
Elke share begint met een share-name tussen vierkante haken, in ons voorbeeld [brussel]
- de geshare-de directory
- Maak met sudo de directory
/home/ketje
aan.
$ sudo mkdir /home/ketje
- Verifieer dat iedereen leesrechten of iedereen er leesrechten op heeft.
$ ls -l /home
drwxr-xr-x 2 root root 20480 jun 9 22:05 ketje drwxr-xr-x 3 user user 4096 jun 9 21:40 user
- Zet er iets in ...
dat kan bvb met onderstaande find ...$ cd /home/ketje $ sudo find /usr/share -iname *doc -exec cp -v {} . \;
'/usr/share/bash-completion/completions/pydoc' -> './pydoc' '/usr/share/bash-completion/completions/asciidoc' -> './asciidoc' '/usr/share/bash-completion/completions/perldoc' -> './perldoc' ... cp: omitting directory '/usr/share/vim/vim74/doc' cp: omitting directory '/usr/share/groff/1.22.3/tmac/mdoc'
- Maak met sudo de directory
- test de configuratie
$ testparm
Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[brussel]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions <enter> # Global parameters [global] workgroup = LOKAAL800 idmap config * : backend = tdb [brussel] path = /home/ketje
- gebruikers
We kunnen niet verder testen zonder samba-gebruikers, een samba-gebruiker bestaat zowel als linux-gebruiker, en als samba-gebruiker:
$ sudo useradd jan
$ sudo smbpasswd -a jan
New SMB password: sdf12345
Retype new SMB password: sdf12345
Added user jan.
- alle smbusers opvragen
$ sudo pdbedit -L -v
-L
to list users.
-v
to be verbose.
- lokaal testen op de server met
smbclient
$ sudo apt install smbclient
$ smbclient -L localhost -U jan
Enter jan's password:
Domain=[LOKAAL800] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu] Sharename Type Comment --------- ---- ------- brussel Disk IPC$ IPC IPC Service (Samba 4.3.11-Ubuntu) Domain=[LOKAAL800] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu] Server Comment --------- ------- Workgroup Master --------- ------- SOLAR2001 LX11 WORKGROUP UBU16-SRV-01
$ smbclient //localhost/brussel -U jan
Enter jan's password:
Domain=[LOKAAL800] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]
smb: \> ls
. D 0 Fri Jun 9 22:05:54 2017 .. D 0 Fri Jun 9 21:40:25 2017 pydoc N 986 Fri Jun 9 22:05:54 2017 asciidoc N 1179 Fri Jun 9 22:05:54 2017 manpage.example.mdoc N 3811 Fri Jun 9 22:05:54 2017 perldoc N 3569 Fri Jun 9 22:05:54 2017 puppetdoc N 9792 Fri Jun 9 22:05:54 2017 munindoc N 335 Fri Jun 9 22:05:54 2017 javadoc N 8288 Fri Jun 9 22:05:54 2017 15865808 blocks of size 1024. 12395384 blocks available
smb: \> exit
- testen vanaf de windows command line
C:\>
NET USE L: \\172.16.31.123\brussel /USER:jan
The password or user name is invalid for \\172.16.31.123\brussel.
Enter the password for 'jan' to connect to '172.16.31.123':
sdf12345
The command completed successfully.
C:\> L:
L:\> dir
Volume in drive L is brussel Volume Serial Number is 09BE-125A Directory of L:\ 09/06/2017 01:23 <DIR> . 09/06/2017 01:22 <DIR> .. 09/06/2017 01:23 9.792 puppetdoc 09/06/2017 01:23 8.6288 javadoc 8 File(s) 1.654.652 bytes
meer ...
- Om te kunnen schrijven op je share voeg je het volgende toe in de
/etc/samba/smb.conf
onderaan je share declaratie:
writable=yes
- Je kan ook alle homedirectories van je sambaserver sharen door de volgende declaraties toe te voegen:
[homes] writable=yes
na beide aanpassingen zietsmb.conf
er dan uit als volgt:[global] workgroup=lokaal800 [brussel] path=/home/ketje comment=kommentaar writable=yes [homes] writable=yes
- Om te kunnen schrijven op je share voeg je het volgende toe in de
- version
$ samba --version
Version 4.3.11-Ubuntu
- documentatie:
https://www.samba.org/samba/docs/
- samba service beheer
samba bestaat uit twee daemons:smbd
ennmbd
.
In de man-pagina's staat het volgende:
smbd - server to provide SMB/CIFS services to clients
nmbd - NetBIOS name server to provide NetBIOS over IP naming services to clients
smbd zorgt dus voor de share, nmbd voor de vertaling van netbiosnames naar IP en omgekeerd.
Zoals de meeste services in ubuntu16 wordt hier ook gebruik gemaakt vansystemd
om de daemons te beheren:
$ sudo systemctl status smbd
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd) Loaded: loaded (/etc/init.d/smbd; bad; vendor preset: enabled) Active: active (running) since za 2017-06-10 13:27:08 CEST; 40min ago Docs: man:systemd-sysv-generator(8) Process: 1474 ExecReload=/etc/init.d/smbd reload (code=exited, status=0/SUCCESS) Process: 886 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS) Tasks: 3 Memory: 38.0M CPU: 214ms CGroup: /system.slice/smbd.service ├─ 954 /usr/sbin/smbd -D ├─ 992 /usr/sbin/smbd -D └─1114 /usr/sbin/smbd -D jun 10 13:27:04 ubu16-01 systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)... jun 10 13:27:08 ubu16-01 smbd[886]: * Starting SMB/CIFS daemon smbd jun 10 13:27:08 ubu16-01 smbd[886]: ...done. jun 10 13:27:08 ubu16-01 systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd). jun 10 13:27:10 ubu16-01 smbd[954]: [2017/06/10 13:27:10.675744, 0] ../lib/util/become_daemon.c:124(daemon_ready) jun 10 13:27:10 ubu16-01 smbd[954]: STATUS=daemon 'smbd' finished starting up and ready to serve connections jun 10 13:50:59 ubu16-01 systemd[1]: Reloading LSB: start Samba SMB/CIFS daemon (smbd). jun 10 13:50:59 ubu16-01 smbd[1474]: * Reloading /etc/samba/smb.conf smbd jun 10 13:50:59 ubu16-01 smbd[1474]: ...done. jun 10 13:50:59 ubu16-01 systemd[1]: Reloaded LSB: start Samba SMB/CIFS daemon (smbd).
$ sudo systemctl status nmbd
● nmbd.service - LSB: start Samba NetBIOS nameserver (nmbd) Loaded: loaded (/etc/init.d/nmbd; bad; vendor preset: enabled) Active: active (running) since za 2017-06-10 13:27:11 CEST; 43min ago Docs: man:systemd-sysv-generator(8) Process: 1129 ExecStart=/etc/init.d/nmbd start (code=exited, status=0/SUCCESS) Tasks: 1 Memory: 2.1M CPU: 163ms CGroup: /system.slice/nmbd.service └─1232 /usr/sbin/nmbd -D jun 10 13:27:11 ubu16-01 nmbd[1129]: ...done. jun 10 13:27:11 ubu16-01 systemd[1]: Started LSB: start Samba NetBIOS nameserver (nmbd). jun 10 13:27:11 ubu16-01 nmbd[1232]: [2017/06/10 13:27:11.222804, 0] ../lib/util/become_daemon.c:124(daemon_ready) jun 10 13:27:11 ubu16-01 nmbd[1232]: STATUS=daemon 'nmbd' finished starting up and ready to serve connections jun 10 13:27:34 ubu16-01 nmbd[1232]: [2017/06/10 13:27:34.286076, 0] ../source3/nmbd/nmbd_become_lmb.c:397(become_local_master_stage2) jun 10 13:27:34 ubu16-01 nmbd[1232]: ***** jun 10 13:27:34 ubu16-01 nmbd[1232]: jun 10 13:27:34 ubu16-01 nmbd[1232]: Samba name server UBU16-SRV-01 is now a local master browser for workgroup LOKAAL800 on subnet 192.168.5.240 jun 10 13:27:34 ubu16-01 nmbd[1232]: jun 10 13:27:34 ubu16-01 nmbd[1232]: *****
De standaardsystemctl
functies:
status, start, stop, restart, reload, enable, disable
zijn beschikbaar.
- samba client
http://old.linux800.be/lx-svs-info-samba-client.php