Bestanden delen tussen Ubuntu 20.04 en Windows Systemen met Samba
On januari 21, 2022 by adminHoewel Linux al wat is doorgedrongen in de desktop markt, is zijn oorsprong en toekomst toch vooral server-gebaseerd. Het is daarom niet verwonderlijk dat Ubuntu de mogelijkheid heeft om op te treden als een bestandsserver. Het is ook zeer gebruikelijk dat Ubuntu en Windows systemen naast elkaar worden gebruikt in netwerkomgevingen. Het is dan ook een veel voorkomende vereiste dat bestanden op een Ubuntu systeem toegankelijk zijn voor Linux, UNIX en Windows-gebaseerde systemen via netwerkverbindingen. Evenzo kan het nodig zijn dat gedeelde mappen en printers die op Windows systemen staan ook toegankelijk moeten zijn vanaf Ubuntu gebaseerde systemen.
Windows systemen delen bronnen zoals bestandssystemen en printers met behulp van een protocol dat bekend staat als Server Message Block (SMB). Opdat een Ubuntu-systeem dergelijke bronnen over een netwerk aan een Windows-systeem kan aanbieden en vice versa, moet het daarom SMB ondersteunen. Dit wordt bereikt met behulp van technologie die Samba wordt genoemd. Naast integratie tussen Linux en Windows systemen, kan Samba ook worden gebruikt om mappen te delen tussen Linux systemen (als een alternatief voor NFS, dat in het vorige hoofdstuk is behandeld).
In dit hoofdstuk bekijken we de stappen die nodig zijn om bestandssysteem bronnen en printers op een Ubuntu systeem te delen met externe Windows en Linux systemen, en om Windows bronnen te benaderen vanuit Ubuntu.
1.1 Toegang tot Windows bronnen vanuit de GNOME Desktop
Voordat we dieper ingaan op het delen via Samba, is het goed om te weten dat als u alleen maar toegang wilt tot gedeelde Windows mappen vanuit de Ubuntu GNOME desktop, er al ondersteuning is vanuit de GNOME Bestanden applicatie. De Bestanden toepassing bevindt zich in het streepje zoals aangegeven in Figuur 23-1:
Figuur 23-1
Eenmaal gestart, selecteer de Andere Locaties optie in het linker navigatie paneel gevolgd door het Windows Netwerk icoon in het hoofdpaneel om door de beschikbare Windows bronnen te bladeren:
Figuur 23-2
1.2 Samba en Samba Client
Samba maakt het mogelijk zowel Ubuntu bronnen te delen met Windows systemen als Windows bronnen te delen met Ubuntu systemen. Ubuntu heeft toegang tot Windows-bronnen met behulp van de Samba client. Ubuntu bronnen, aan de andere kant, worden gedeeld met Windows systemen door het installeren en configureren van de Samba service.
1.3 Het installeren van Samba op een Ubuntu Systeem
De standaard instellingen gebruikt tijdens het Ubuntu installatieproces installeren meestal niet de benodigde Samba pakketten. Tenzij u er specifiek om gevraagd heeft Samba te installeren is het onwaarschijnlijk dat u Samba op uw systeem geïnstalleerd heeft. Om te controleren of Samba is geïnstalleerd, opent u een terminal venster en voert u het volgende commando uit:
# apt -qq list samba-common samba smbclient
De ontbrekende pakketten kunnen worden geïnstalleerd met behulp van het apt command-line programma:
# apt install samba-common samba smbclient
1.4 De Ubuntu Firewall configureren om Samba toe te staan
Volgende, de firewall die momenteel het Ubuntu systeem beschermt, moet worden geconfigureerd om Samba verkeer toe te staan.
Als u de ongecompliceerde firewall (ufw) gebruikt, voert u het volgende commando uit:
# ufw allow samba
Als alternatief, als u firewalld gebruikt, voert u het commando firewall-cmd als volgt uit:
# firewall-cmd --permanent --add-port={139/tcp,445/tcp}# firewall-cmd --reload
Voordat de Samba service wordt gestart zijn een aantal configuratiestappen nodig om te definiëren hoe het Ubuntu systeem er uit zal zien voor Windows systemen, en de bronnen die gedeeld moeten worden met remote clients. Het merendeel van deze configuratietaken vindt plaats in het bestand /etc/samba/smb. conf.
1.5 Het smb.conf bestand configureren
Samba is een zeer flexibel en configureerbaar systeem dat veel verschillende opties biedt om te regelen hoe bronnen worden gedeeld op Windows netwerken. Deze flexibiliteit kan leiden tot het gevoel dat Samba overdreven complex is om mee te werken. In werkelijkheid zijn veel van de configuratieopties echter niet nodig voor de typische installatie, en de leercurve om een basisconfiguratie op te zetten is eigenlijk vrij kort.
Voor de doeleinden van dit hoofdstuk zullen we kijken naar het aansluiten van een Ubuntu-systeem bij een Windows-werkgroep en het opzetten van een directory als een gedeelde bron die door een specifieke gebruiker kan worden benaderd. Dit is een configuratie die bekend staat als een standalone Samba server. Meer geavanceerde configuraties zoals het integreren van Samba in een Active Directory omgeving zijn ook beschikbaar, maar deze vallen buiten het bereik van dit boek.
De eerste stap in het configureren van Samba is het bewerken van het /etc/samba/smb.conf bestand.
1.5.1 De sectie configureren
Het smb.conf bestand is verdeeld in secties. De eerste sectie is de sectie waar instellingen kunnen worden gespecificeerd die van toepassing zijn op de gehele Samba configuratie. Hoewel deze instellingen globaal zijn, kan elke optie worden overschreven in andere secties van het configuratiebestand.
De eerste taak is het definiëren van de naam van de Windows werkgroep waarop de Ubuntu bronnen moeten worden gedeeld. Dit wordt geregeld via de workgroup = directive van de sectie die standaard als volgt is geconfigureerd:
workgroup = WORKGROUP
Begin met het veranderen van dit in de werkelijke naam van de werkgroep indien nodig.
Naast de werkgroep instelling, geven de andere instellingen aan dat dit een standalone server is waarop de gedeelde bronnen zullen worden beschermd door gebruikers wachtwoorden. Voordat de gedeelde bronnen worden geconfigureerd, moeten ook andere parameters als volgt aan de sectie worden toegevoegd:
.. netbios name = LinuxServer..
De eigenschap “netbios name” specificeert de naam waaronder de server zichtbaar zal zijn voor andere systemen op het netwerk.
1.5.2 Een gedeelde bron configureren
De volgende stap is het configureren van de gedeelde bronnen (met andere woorden de bronnen die toegankelijk zullen zijn vanaf andere systemen op het Windows-netwerk). Om dit te bereiken, wordt de sectie een naam gegeven waarnaar verwezen zal worden wanneer deze gedeeld wordt. Als we bijvoorbeeld van plan zijn om de /sampleshare directory van ons Ubuntu systeem te delen, zouden we de sectie de naam . In deze sectie zijn een aantal configuratie opties mogelijk. Voor het doel van dit voorbeeld zullen we echter eenvoudigweg de te delen directory definiëren, aangeven dat de directory zowel doorbladerbaar als beschrijfbaar is en de bron publiek verklaren zodat gastgebruikers toegang kunnen krijgen:
comment = Example Samba share path = /sampleshare browseable = Yes public = yes writable = yes
Om de toegang tot specifieke gebruikers te beperken, kan bijvoorbeeld de eigenschap “geldige gebruikers” worden gebruikt:
valid users = demo, bobyoung, marcewing
1.5.3 Onnodige shares verwijderen
Het smb.conf bestand is voorgeconfigureerd met secties voor het delen van printers en de thuismappen van de gebruikers op het systeem. Als deze bronnen niet gedeeld hoeven te worden, kunnen de corresponderende secties worden uitgecommentarieerd zodat ze worden genegeerd door Samba. In het volgende voorbeeld is de sectie uitgecommentarieerd:
..## comment = Home Directories# valid users = %S, %D%w%S# browseable = No# read only = No# inherit acls = Yes..
1.6 Een Samba gebruiker aanmaken
Elke gebruiker die toegang wil tot een gedeelde Samba bron moet worden geconfigureerd als een Samba gebruiker en een wachtwoord krijgen. Deze taak wordt uitgevoerd met het smbpasswd command-line hulpprogramma. Stel bijvoorbeeld dat een gebruiker met de naam demo toegang moet kunnen krijgen tot de /sampleshare directory van ons Ubuntu systeem vanaf een Windows systeem. Om aan deze eis te voldoen moeten we demo als volgt toevoegen als Samba gebruiker:
# smbpasswd -a demoNew SMB password:Retype new SMB password:Added user demo.
Nu we de configuratie van een zeer eenvoudige Samba server hebben voltooid, is het tijd om ons configuratiebestand te testen en vervolgens de Samba diensten te starten.
1.7 Het smb.conf bestand testen
De instellingen in het smb.conf bestand kunnen als volgt op fouten worden gecontroleerd met het command-line hulpprogramma testparm:
# testparmLoad smb config files from /etc/samba/smb.confrlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)WARNING: The "syslog" option is deprecatedProcessing section ""Processing section ""Processing section ""Loaded services file OK.Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parametersdns proxy = Nolog file = /var/log/samba/log.%mmap to guest = Bad Usermax log size = 1000netbios name = LINUXSERVERobey pam restrictions = Yespam password change = Yespanic action = /usr/share/samba/panic-action %dpasswd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .passwd program = /usr/bin/passwd %usecurity = USERserver role = standalone serverserver string = %h server (Samba, Ubuntu)syslog = 0unix password sync = Yesusershare allow guests = Yeswins support = Yesidmap config * : backend = tdb browseable = Nocomment = All Printerscreate mask = 0700path = /var/spool/sambaprintable = Yes comment = Printer Driverspath = /var/lib/samba/printers comment = Example Samba shareguest ok = Yespath = /sampleshareread only = No
1.8 De Samba en NetBIOS nameservice starten
Om een Ubuntu server binnen een Windows netwerk te laten werken moeten zowel de Samba (SMB) als de NetBIOS nameservice (NMB) services worden gestart. Optioneel kunt u de services ook inschakelen zodat ze elke keer starten als het systeem opstart:
# systemctl enable smbd# systemctl start smbd# systemctl enable nmbd# systemctl start nmbd
Voordat u probeert verbinding te maken vanaf een Windows systeem, gebruikt u het hulpprogramma smbclient om te controleren of de share is geconfigureerd:
# smbclient -U demo -L localhost Enter WORKGROUP\demo's password: Sharename Type Comment--------- ---- -------print$ Disk Printer Driverssampleshare Disk Example Samba shareIPC$ IPC IPC Service (demo-server2 server (Samba, Ubuntu))Officejet_Pro_8600_C7C718_ Printer Officejet_6600_971B9B_ Printer Reconnecting with SMB1 for workgroup listing. Server Comment--------- ------- Workgroup Master--------- -------WORKGROUP LINUXSERVER
1.9 Toegang tot Samba-shares
Nu de Samba-bronnen zijn geconfigureerd en de services draaien, is het tijd om de gedeelde bron vanaf een Windows-systeem te benaderen. Op een geschikt Windows systeem in dezelfde werkgroep als het Ubuntu systeem, open Windows Verkenner en navigeer naar het Netwerk paneel. Op dit punt zou de Verkenner het netwerk moeten doorzoeken en een lijst moeten maken van alle systemen die gebruik maken van het SMB protocol die het vindt. De volgende figuur illustreert een Ubuntu systeem met de naam LINUXSERVER gevonden met Windows Verkenner op een Windows 10 systeem:
Figuur 23-3
Dubbelklikken op de LINUXSERVER host zal vragen om de naam en het wachtwoord van een gebruiker met toegangsprivileges. In dit geval is dat de demo-account die we hebben geconfigureerd met het hulpprogramma smbpasswd:
Figuur 23-4
Als u de gebruikersnaam en het wachtwoord invoert, verschijnen de gedeelde bronnen die voor die gebruiker zijn geconfigureerd in het verkennervenster, inclusief de eerder geconfigureerde bron /sampleshare:
Figuur 23-5
Dubbelklikken op de gedeelde bron /sampleshare geeft een lijst weer met de bestanden en mappen die zich daarin bevinden.
Als u het Linux-systeem niet kunt zien of problemen hebt met de toegang tot de gedeelde map, probeert u de Samba-share als volgt toe te wijzen aan een lokaal Windows-station:
- Open Windows File Explorer, klik met de rechtermuisknop op het item Netwerk in het linkerpaneel en selecteer Netwerkstation toewijzen… in het resulterende menu.
- Van het dialoogvenster Netwerkstation toewijzen, selecteert u een stationsletter voordat u het pad naar de gedeelde map invoert. Bijvoorbeeld:
\LinuxServer\sampleshare
Vink het selectievakje naast Verbinden met andere referenties aan. Als u niet wilt dat de schijf elke keer dat u zich aanmeldt bij het Windows-systeem in kaart wordt gebracht, schakelt u het betreffende selectievakje uit:
Figuur 23-6
Met de ingevoerde instellingen klikt u op de knop Voltooien om de schijf in kaart te brengen, waarbij u de gebruikersnaam en het wachtwoord invoert voor de Samba-gebruiker die eerder in het hoofdstuk zijn geconfigureerd wanneer daarom wordt gevraagd. Na een korte vertraging verschijnt de inhoud van de Samba share in een nieuw File Explorer venster.
1.10 Toegang tot Windows Shares vanuit Ubuntu
Zoals eerder vermeld, is Samba een tweerichtingsverkeer, waarbij niet alleen Windows systemen toegang hebben tot bestanden en printers die gehost worden op een Ubuntu systeem, maar waarbij het Ubuntu systeem ook toegang heeft tot gedeelde bronnen op Windows systemen. Dit wordt bereikt met het smbclient pakket dat aan het begin van dit hoofdstuk is geïnstalleerd. Indien dit pakket nog niet geïnstalleerd is, installeer het dan als volgt vanuit een terminal venster:
# apt install smbclient
Gedeelde bronnen op een Windows systeem kunnen benaderd worden vanaf het Ubuntu bureaublad met de Bestanden toepassing, of vanaf de command-line prompt met de smbclient en mount tools. De stappen in dit gedeelte gaan ervan uit dat de juiste instellingen voor het delen van netwerken zijn ingeschakeld op het Windows-systeem.
Om toegang te krijgen tot gedeelde bronnen op een Windows-systeem met behulp van het GNOME bureaublad, begint u met het starten van de toepassing Bestanden en het selecteren van de optie Andere locaties. Dit zal het scherm tonen zoals getoond in Figuur 23-7 hieronder, inclusief een pictogram voor het Windows Netwerk (als er een is gedetecteerd):
Figuur 23-7
Selecteren van de Windows Netwerk optie zal de Windows systemen tonen die gedetecteerd zijn op het netwerk en toegang verlenen tot alle gedeelde bronnen.
Figuur 23-8
Aternatief kan de optie Verbinding maken met server worden gebruikt om verbinding te maken met een specifiek systeem. Merk op dat de naam of het IP-adres van het systeem op afstand voorafgegaan moet worden door smb:// en gevolgd kan worden door het pad naar een specifieke gedeelde bron, bijvoorbeeld:
smb://WinServer10/Documents
Geef een antwoord