Deling af filer mellem Ubuntu 20.04 og Windows-systemer med Samba
On januar 21, 2022 by adminOg selv om Linux har gjort nogle indhug på desktopmarkedet, er Linux’ oprindelse og fremtid i høj grad serverbaseret. Det er derfor ikke overraskende, at Ubuntu har mulighed for at fungere som en filserver. Det er også meget almindeligt, at Ubuntu- og Windows-systemer anvendes side om side i netværksmiljøer. Det er derfor et almindeligt krav, at filer på et Ubuntu-system skal være tilgængelige for Linux-, UNIX- og Windows-baserede systemer via netværksforbindelser. På samme måde kan det også være nødvendigt, at delte mapper og printere på Windows-systemer skal være tilgængelige fra Ubuntu-baserede systemer.
Windows-systemer deler ressourcer som f.eks. filsystemer og printere ved hjælp af en protokol kaldet Server Message Block (SMB). For at et Ubuntu-system kan levere sådanne ressourcer over et netværk til et Windows-system og omvendt, skal det derfor understøtte SMB. Dette opnås ved hjælp af en teknologi kaldet Samba. Ud over at give integration mellem Linux- og Windows-systemer kan Samba også bruges til at give mappedeling mellem Linux-systemer (som et alternativ til NFS, som blev behandlet i det foregående kapitel).
I dette kapitel vil vi se på de nødvendige trin for at dele filsystemressourcer og printere på et Ubuntu-system med eksterne Windows- og Linux-systemer og for at få adgang til Windows-ressourcer fra Ubuntu.
1.1 Adgang til Windows-ressourcer fra GNOME-skrivebordet
Hvor vi går mere i detaljer med Samba-deling, er det værd at bemærke, at hvis det eneste, du ønsker at gøre, er at få adgang til Windows-delte mapper fra Ubuntu GNOME-skrivebordet, så er der allerede understøttelse i GNOME Files-applikationen. Programmet Filer er placeret i stregen som fremhævet i Figur 23-1:
Figur 23-1
Når det er startet, skal du vælge indstillingen Andre placeringer i venstre navigationspanel efterfulgt af ikonet Windows Network i hovedpanelet for at gennemse tilgængelige Windows-ressourcer:
Figur 23-2
1.2 Samba og Samba-klient
Samba gør det muligt både at dele Ubuntu-ressourcer med Windows-systemer og at dele Windows-ressourcer med Ubuntu-systemer. Ubuntu får adgang til Windows-ressourcer ved hjælp af Samba-klienten. Ubuntu-ressourcer deles derimod med Windows-systemer ved at installere og konfigurere Samba-tjenesten.
1.3 Installation af Samba på et Ubuntu-system
De standardindstillinger, der anvendes under Ubuntu-installationsprocessen, installerer typisk ikke de nødvendige Samba-pakker. Medmindre du specifikt har anmodet om at få Samba installeret, er det usandsynligt, at du har Samba installeret på dit system. For at kontrollere, om Samba er installeret, skal du åbne et terminalvindue og køre følgende kommando:
# apt -qq list samba-common samba smbclient
Alle manglende pakker kan installeres ved hjælp af kommandolinjeværktøjet apt:
# apt install samba-common samba smbclient
1.4 Konfigurering af Ubuntu-firewallen til at aktivere Samba
Næst skal den firewall, der i øjeblikket beskytter Ubuntu-systemet, konfigureres til at tillade Samba-trafik.
Hvis du bruger ufw (Uncomplicated Firewall), skal du køre følgende kommando:
# ufw allow samba
Alternativt, hvis du bruger firewalld, skal du køre kommandoen firewall-cmd som følger:
# ufw allow samba
# firewall-cmd --permanent --add-port={139/tcp,445/tcp}# firewall-cmd --reload
Hvor Samba-tjenesten startes, er det nødvendigt med en række konfigurationstrin for at definere, hvordan Ubuntu-systemet skal se ud for Windows-systemer, og hvilke ressourcer der skal deles med fjernklienter. Størstedelen af disse konfigurationsopgaver finder sted i filen /etc/samba/smb. conf.
1.5 Konfiguration af filen smb.conf
Samba er et meget fleksibelt og konfigurerbart system, der giver mange forskellige muligheder for at styre, hvordan ressourcer deles på Windows-netværk. Denne fleksibilitet kan føre til en følelse af, at Samba er alt for kompleks at arbejde med. I virkeligheden er mange af konfigurationsmulighederne dog ikke nødvendige for den typiske installation, og indlæringskurven for at opsætte en grundlæggende konfiguration er faktisk ret kort.
I dette kapitel vil vi se på at tilknytte et Ubuntu-system til en Windows-arbejdsgruppe og opsætte en mappe som en delt ressource, der kan tilgås af en bestemt bruger. Dette er en konfiguration, der er kendt som en standalone Samba-server. Der findes også mere avancerede konfigurationer som f.eks. integration af Samba i et Active Directory-miljø, men de ligger uden for denne bogs anvendelsesområde.
Det første skridt i konfigurationen af Samba er at redigere filen /etc/samba/smb.conf.
1.5.5.1 Konfiguration af sektionen
Filen smb.conf er inddelt i sektioner. Det første afsnit er det afsnit, hvor der kan angives indstillinger, som gælder for hele Samba-konfigurationen. Selv om disse indstillinger er globale, kan hver indstilling tilsidesættes i andre afsnit i konfigurationsfilen.
Den første opgave er at definere navnet på den Windows-arbejdsgruppe, som Ubuntu-ressourcerne skal deles på. Dette styres via workgroup =-direktivet i afsnittet, der som standard er konfigureret som følger:
workgroup = WORKGROUP
Begynd om nødvendigt med at ændre dette til det faktiske navn på arbejdsgruppen.
Ud over arbejdsgruppeindstillingen angiver de andre indstillinger, at der er tale om en standalone-server, hvor de delte ressourcer skal beskyttes med brugeradgangskoder. Før vi går videre til at konfigurere de ressourcer, der skal deles, skal der også tilføjes andre parametre til afsnittet som følger:
.. netbios name = LinuxServer..
Egenskaben “netbios name” angiver det navn, som serveren vil være synlig for andre systemer på netværket.
1.5.5.2 Konfigurering af en delt ressource
Det næste trin er at konfigurere de delte ressourcer (med andre ord de ressourcer, der vil være tilgængelige fra andre systemer på Windows-netværket). For at opnå dette gives sektionen et navn, som den vil blive refereret til, når den er delt. Hvis vi f.eks. har planer om at dele mappen /sampleshare på vores Ubuntu-system, kan vi give afsnittet navnet . I dette afsnit er der mulighed for en række forskellige konfigurationsmuligheder. I dette eksempel vil vi dog blot definere den mappe, der skal deles, angive, at mappen både kan gennemses og skrives, og erklære ressourcen for offentlig, så gæstebrugere kan få adgang:
comment = Example Samba share path = /sampleshare browseable = Yes public = yes writable = yes
For at begrænse adgangen til bestemte brugere kan man f.eks. bruge egenskaben “valid users”:
valid users = demo, bobyoung, marcewing
1.5.3 Fjernelse af unødvendige delinger
Smb.conf-filen er forudkonfigureret med sektioner til deling af printere og hjemmemapper for brugerne på systemet. Hvis disse ressourcer ikke behøver at blive delt, kan de tilsvarende afsnit kommenteres ud, så de ignoreres af Samba. I følgende eksempel er afsnittet kommenteret ud:
..## comment = Home Directories# valid users = %S, %D%w%S# browseable = No# read only = No# inherit acls = Yes..
1.6 Oprettelse af en Samba-bruger
Alle brugere, der skal have adgang til en delt Samba-ressource, skal konfigureres som en Samba-bruger og tildeles en adgangskode. Denne opgave udføres ved hjælp af kommandolinjeværktøjet smbpasswd. Overvej f.eks. at en bruger ved navn demo skal kunne få adgang til mappen /sampleshare på vores Ubuntu-system fra et Windows-system. For at opfylde dette krav skal vi tilføje demo som Samba-bruger på følgende måde:
# smbpasswd -a demoNew SMB password:Retype new SMB password:Added user demo.
Nu da vi har afsluttet konfigurationen af en meget grundlæggende Samba-server, er det tid til at teste vores konfigurationsfil og derefter starte Samba-tjenesterne.
1.7 Test af smb.conf-filen
Indstillingerne i filen smb.conf-filen kan kontrolleres for fejl ved hjælp af kommandolinjeværktøjet testparm som følger:
# 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 Start af Samba- og NetBIOS-navnetjenesterne
For at en Ubuntu-server kan fungere i et Windows-netværk skal både Samba- (SMB) og NetBIOS-navnetjenesterne (NMB) startes. Du kan eventuelt også aktivere tjenesterne, så de starter hver gang systemet starter op:
# systemctl enable smbd# systemctl start smbd# systemctl enable nmbd# systemctl start nmbd
Hvor du forsøger at oprette forbindelse fra et Windows-system, skal du bruge værktøjet smbclient til at verificere, at delingen er konfigureret:
# 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 Adgang til Samba-ressourcer
Nu er Samba-ressourcerne konfigureret, og tjenesterne kører, er det tid til at få adgang til den delte ressource fra et Windows-system. På et passende Windows-system i den samme arbejdsgruppe som Ubuntu-systemet skal du åbne Windows Explorer og navigere til panelet Netværk. På dette tidspunkt bør Explorer søge i netværket og opregne alle systemer, der bruger SMB-protokollen, som den finder. Følgende figur illustrerer et Ubuntu-system ved navn LINUXSERVER, der er lokaliseret ved hjælp af Windows Explorer på et Windows 10-system:
Figur 23-3
Dobbeltklik på LINUXSERVER-værten vil bede om navn og adgangskode for en bruger med adgangsrettigheder. I dette tilfælde er det den demokonto, som vi konfigurerede ved hjælp af værktøjet smbpasswd:
Figur 23-4
Indtastning af brugernavn og adgangskode vil resultere i, at de delte ressourcer, der er konfigureret for denne bruger, vises i Explorer-vinduet, herunder den tidligere konfigurerede /sampleshare-ressource:
Figur 23-5
Dobbeltklik på den delte ressource /sampleshare viser en liste over de filer og mapper, der er indeholdt deri.
Hvis du ikke kan se Linux-systemet eller har problemer med at få adgang til den delte mappe, kan du prøve at mappe Samba-aktien til et lokalt Windows-drev på følgende måde:
- Åbn Windows File Explorer, højreklik på posten Netværk i det venstre panel, og vælg Map network drive… i den resulterende menu.
- Vælg et drevbogstav i dialogboksen Map Network Drive, før du indtaster stien til den delte mappe. For eksempel:
\LinuxServer\sampleshare
Aktiver afkrydsningsfeltet ud for Opret forbindelse ved hjælp af forskellige legitimationsoplysninger. Hvis du ikke ønsker, at drevet skal tilknyttes, hver gang du logger på Windows-systemet, skal du slå det tilsvarende afkrydsningsfelt fra:
Figur 23-6
Med de indtastede indstillinger skal du klikke på knappen Afslut for at tilknytte drevet, idet du indtaster brugernavn og adgangskode for den Samba-bruger, der blev konfigureret tidligere i kapitlet, når du bliver bedt om det. Efter en kort forsinkelse vises indholdet af Samba-aktien i et nyt vindue i File Explorer.
1.10 Adgang til Windows-aktier fra Ubuntu
Som tidligere nævnt er Samba en tovejskommunikation, der ikke kun giver Windows-systemer adgang til filer og printere, der er hostet på et Ubuntu-system, men også giver Ubuntu-systemet adgang til delte ressourcer på Windows-systemer. Dette opnås ved hjælp af pakken smbclient, som blev installeret i starten af dette kapitel. Hvis den ikke er installeret i øjeblikket, skal du installere den fra et terminalvindue som følger:
# apt install smbclient
Delte ressourcer på et Windows-system kan tilgås enten fra Ubuntu-skrivebordet ved hjælp af programmet Filer eller fra kommandolinjen ved hjælp af værktøjerne smbclient og mount. Trinene i dette afsnit forudsætter, at de relevante indstillinger for netværksdeling er aktiveret på Windows-systemet.
For at få adgang til alle delte ressourcer på et Windows-system ved hjælp af GNOME-skrivebordet skal du begynde med at starte programmet Filer og vælge indstillingen Andre steder. Dette vil vise den skærm, der er vist i Figur 23-7 nedenfor, herunder et ikon for Windows-netværket (hvis et sådant er registreret):
Figur 23-7
Vælg valgmuligheden Windows-netværk for at vise de Windows-systemer, der er registreret på netværket, og give adgang til eventuelle delte ressourcer.
Figur 23-8
Alternativt kan indstillingen Forbind til server bruges til at oprette forbindelse til et bestemt system. Bemærk, at navnet eller IP-adressen på fjernsystemet skal have smb:// som præfiks og kan efterfølges af stien til en specifik delt ressource, f.eks.:
smb://WinServer10/Documents
Skriv et svar