i den här handledningen kommer vi att lära oss hur du installerar och konfigurerar en Samba-server på Ubuntu för att dela filer på det lokala nätverket. Samba är en fri och öppen källkod SMB / CIFS protokollimplementering för Unix och Linux som möjliggör fil-och utskriftsdelning mellan Unix/Linux, Windows och macOS-maskiner i ett lokalt nätverk.

Samba installeras vanligtvis och körs på Linux., Den består av flera program som tjänar olika men relaterade ändamål, varav de viktigaste två är:

  • smbd: ger SMB / CIFS-tjänst (fildelning och utskrift), kan också fungera som en Windows-domänkontrollant.
  • NMBD: den här demonen tillhandahåller NetBIOS namntjänst, lyssnar på namnserverförfrågningar. Det gör också att Samba-servern kan hittas av andra datorer i nätverket.

så här installerar du Samba Server på Ubuntu

Samba ingår i de flesta Linux-distributioner. För att installera Samba på Ubuntu, kör helt enkelt följande kommando i terminal.,

sudo apt install samba samba-common-bin

den senaste stabila versionen är 4.12.0, släppt Mars 03, 2019. För att kontrollera din Samba-version, kör

smbd --version

Sample output:

Version 4.7.6-Ubuntu

för att kontrollera om Samba-tjänsten körs, utfärda följande kommando.

systemctl status smbd nmbd

för att starta dessa två tjänster, utfärda följande kommando:

sudo systemctl start smbd nmbd

en gång började, smbd kommer att lyssna på TCP-port 139 och 445. nmbd kommer att lyssna på UDP-port 137 och 138.,

  • TCP 139: används för fil-och skrivardelning och andra åtgärder.
  • TCP 445: NetBIOS-mindre CIFS-port.
  • UDP 137: används för NetBIOS nätverkssökning.
  • UDP 138: används för NetBIOS namntjänst.

om du har aktiverat UFW-brandväggen på Ubuntu måste du öppna ovanstående portar i brandväggen med följande kommando.

sudo ufw allow samba

skapa en privat Samba-andel

i det här avsnittet kommer vi att se hur du skapar en privat Samba-andel som kräver att klienten anger användarnamn och lösenord för att få åtkomst., Den huvudsakliga Samba konfigurationsfilen finns på: /etc/samba/smb.conf. Du kan redigera den i terminal med en kommandoradstextredigerare som nano.

sudo nano /etc/samba/smb.conf

i avsnittet, se till att värdet påworkgroup är detsamma med arbetsgruppsinställningarna för Windows-datorer.,

workgroup = WORKGROUP

Du kan hitta inställningen på din Windows-dator genom att gå tillControl Panel>System and Security>System.

rulla sedan ner till botten av filen. (I nano textredigerare kan du uppnå det genom att trycka på CTRL+W sedan CTRL+V. ) Lägg till ett nytt avsnitt som nedan.,

förklaring:

  • Private är mappnamnet som kommer att visas i Windows-nätverket.
  • kommentaren är en beskrivning för den delade mappen.
  • parametern sökväg anger sökvägen till den delade mappen. Jag använder /srv/samba/private/ som ett exempel. Du kan också använda en mapp i din hemkatalog.
  • browseable = yes: Tillåt att andra datorer i nätverket ser Samba-servern och Samba-delen., Om den är inställd på nej måste användarna känna till namnet på Samba-servern och ange sedan en sökväg manuellt i filhanteraren för att komma åt den delade mappen.
  • guest ok = no: inaktivera gäståtkomst. Med andra ord måste du ange användarnamn och lösenord på klientdatorn för att komma åt den delade mappen.
  • writable = yes: ger både läs-och skrivbehörighet till klienter.
  • valid users = @samba: endast användare i samba-gruppen får komma åt denna Samba-andel.

spara och stäng filen., (För att spara filen i nano textredigerare, tryck på Ctrl+O och tryck sedan på Enter för att bekräfta filnamnet att skriva. För att stänga filen trycker du på Ctrl+X.) Nu måste vi skapa en samba-användare. Först måste vi skapa ett standard Linux – användarkonto med följande kommando. Ersätt username med önskat användarnamn.

sudo adduser username

du uppmanas att ange ett Unix-lösenord., Därefter måste du också ställa in ett separat Samba-lösenord för den nya användaren med följande kommando:

sudo smbpasswd -a username

skapa samba-gruppen.

sudo groupadd samba

och Lägg till den här användaren i samba-gruppen.

sudo gpasswd -a username samba

skapa mappen private share.

sudo mkdir -p /srv/samba/private/

samba-gruppen måste ha läst, skriva och exekvera behörighet i den delade mappen. Du kan bevilja dessa behörigheter genom att utföra följande kommando., (Om ditt system inte har kommandot setfacl måste du installera paketet acl med sudo apt install acl.)

sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/

kör sedan följande kommando för att kontrollera om det finns syntaktiska fel.

testparm

nu är allt kvar att göra för att starta omsmbd ochnmbd daemon.,

sudo systemctl restart smbd nmbd

så här skapar du en Samba-Offentlig aktie utan autentisering

för att skapa en offentlig aktie utan att behöva användarnamn och lösenord måste följande villkor vara uppfyllda.

  • Ställ in security = user I den globala delen av Samba-konfigurationsfilen. Även om du kan skapa en offentlig andel med lägetsecurity = share, men det här säkerhetsläget är föråldrat. Det rekommenderas starkt att du undviker läget share.
  • Ställ inmap to guest = bad user I den globala delen av Samba-konfigurationsfilen., Detta gör att smbd använder ett gästkonto för att autentisera klienter som inte har registrerat konto på Samba-servern. Eftersom det är ett gästkonto behöver Samba-klienter inte ange lösenord.
  • angeguest ok = yes I deladefinitionen för att tillåta gäståtkomst.
  • bevilja läs, skriv och kör tillstånd för den offentliga mappen tillnobody – kontot, vilket är standard gästkontot.

faktum är att de två första villkoren redan är uppfyllda eftersom Samba som standard använder dessa två inställningar.,

här är en steg-för-steg-guide för att skapa en offentlig andel. Öppna först och redigera Samba-konfigurationsfilen.

sudo nano /etc/samba/smb.conf

i avsnittet, se till att värdet påworkgroup är detsamma med arbetsgruppsinställningarna för Windows-datorer.

workgroup = WORKGROUP

Du kan hitta inställningen på din Windows-dator genom att gå tillControl Panel>System and Security>System.,

rulla sedan ner till botten av filen och klistra in följande rader.

spara och stäng filen. Skapa sedan mappen/srv/samba/public/.

sudo mkdir -p /srv/samba/public

kontrollera sedan attnobody – kontot har läst, skrivit och exekverat tillstånd i den offentliga mappen genom att köra följande kommando. (Om ditt system inte har kommandot setfacl måste du installera paketet acl med sudo apt install acl.,)

sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/

Starta om smbd och NMBD.

sudo systemctl restart smbd nmbd

åtkomst till Samba delad mapp från Windows

på en Windows-dator som finns i samma nätverk, öppna File Explorer och klicka påNetwork I den vänstra rutan. Om du ser följande meddelande måste du klicka på meddelandet och aktivera nätverksupptäckt och fildelning.

File sharing is turned off. Some network computers and devices might not be visible.

nästa, skriv\\ följt av IP-adressen för Samba-servern i adressfältet i File Explorer, så här:\\192.168.0.102., Du kommer att se en lista över delade resurser på Samba-servern.

dubbelklicka sedan på den delade mappen. För att komma åt den privata delen måste du ange Sambas användarnamn och lösenord. Du behöver inte göra det för att få tillgång till offentlig andel.

När du är ansluten kan du läsa, skriva och ta bort filer i Sambas delade mapp.

anslutningsfel

om du får följande fel:

You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

Du kan försöka ansluta till Samba-delen från kommandotolken., Öppna en kommandotolk och kör sedan följande kommando för att stänga aktuell Samba-session.

net use \\samba-server-ip\share-name /delete

anslut sedan till Samba-delen med följande kommando:

net use \\samba-server-ip\share-name /user:samba-username password

När ovanstående kommando har slutförts, gå till fliken Nätverk i File Explorer och nu ska du kunna komma åt Samba-aktien.

Enhetsmappning i Windows

en funktion i Windows-operativsystemet är möjligheten att kartlägga en enhetsbeteckning (t.ex. S:) till en fjärrkatalog., Om du vill mappa enhetsbeteckningen S: till Samba-delningen högerklickar du på samba: s delade mapp och väljer Map network drive. Välj sedan en enhetsbokstav och klicka på Slutför.

När enhetsmappningen är upprättad kan Program komma åt filerna i Samba-delen via enhetsbeteckningenS:. Och denna Samba aktie kommer att monteras automatiskt när du loggar in på din Windows-dator.,

åtkomst till Samba Share Folder I Nautilus File Manager på Linux

om du använder Nautilus file manager, klicka sedan på Other Locations I den vänstra rutan. På botten ser du ett alternativ för att ansluta till servern. För att komma åt din Samba-andel, skriv insmb:// följt av Samba-serverns IP-adress och tryck på Enter. Till exempel:

  • smb://192.168.0.102

Du kommer att se en lista över delade resurser på Samba-servern.,

om du klickar på den privata delade mappen måste du ange Sambas användarnamn och lösenord. Om du klickar på den delade mappen offentligt väljer du att ansluta som Anonym.

montera automatiskt Samba Share från kommandoraden på Linux

om du automatiskt behöver montera Samba share vid uppstartstiden kan du använda kommandoraden för att montera och sedan lägga till en post i filen/etc/fstab. För att göra det måste du installera paketetcifs-utils.,

CentOS/RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

skapa sedan en monteringspunkt för Samba-aktien.

sudo mkdir /mnt/samba-private

Nu kan du använda följande kommando för att montera en privat delad mapp.

sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/

det kommer att be dig ange Samba-lösenordet. Därefter monteras den på /mnt/samba-private/ – katalogen.

för att automatiskt montera Samba-delen, redigera/etc/fstab – filen.

sudo nano /etc/fstab

Lägg till följande rad i filen.,

var:

  • //192.168.0.102 / private: IP-adressen för Samba-servern och aktienamnet.
  • /mnt/samba-privat: monteringspunkt för Samba-aktien.
  • cifs: filsystemtyp
  • x-systemd.Auto: det här alternativet talar om för systemd att skapa en automatisk enhet för filsystemet. Vi använder detta eftersom det säkerställer att fjärrfilsystemet är monterat först efter att det finns nätverksåtkomst.
  • _netdev: detta anger att mount kräver nätverk.
  • credentials=: Linux bör leta efter referenser i filen/etc/samba-credential.conf.,
  • uid=1000,gid=1000: som standard skulle det monterade filsystemet ägas av root-användaren. Vi använder uid och gid för att ändra äganderätten till filsystemet. Normalt använder du din egen uid och gid, som är både 1000 som standard.
  • X-gvfs-show: om du använder skrivbordsmiljön GNOME eller dess derivat kan du använda det här alternativet för att visa det monterade filsystemet i filhanteraren.

spara och stäng filen. Skapa sedan autentiseringsfilen.

sudo nano /etc/samba-credential.conf

Lägg till följande rader i filen.

username=your_samba_usernamepassword=samba_passworddomain=WORKGROUP

spara och stäng filen., Se till att endast root-användaren kan läsa den här filen.

sudo chmod 600 /etc/samba-credential.conf

Om du startar om din Linux-dator nu kommer Samba-aktien att monteras automatiskt.

kan inte skriva till Samba-aktien?

CIFS-fästet som beskrivs ovan låter dig skriva till Samba-aktien. Om du ser följande fel när du skapar en fil:

Read-only file system

kontrollera att du ställer in writable = yes I Sambas konfigurationsfil., Ibland är den delade mappen Samba på en extern hårddisk och se till att du monterar den externa hårddisken i Läs-skrivläge på Samba-servern. Till exempel monterade jag minbtrfs hårddisk med följande rad i /etc/fstab.

LABEL=5TB /mnt/5TB btrfs defaults 0 0

det visar sig att alternativetdefaults inte tillåter skrivoperation. För att göra den skrivbar, Lägg till rw alternativ.

LABEL=5TB /mnt/5TB btrfs defaults,rw 0 0

avmontera sedan hårddisken. Du måste använda din egen monteringspunkt.

sudo umount /mnt/5TB

och montera den igen.,

sudo mount -a

felsökningstips

om Samba-servern inte fungerar som förväntat kan du kontrollera loggfilerna under/var/log/samba/ – katalogen. Du kan lägga till följande rad i filen I /etc/samba/smb.conf för att öka loggnivån om du vill logga mer information.

log level = 2

packa upp

det är det! Jag hoppas att den här handledningen hjälpte dig att ställa in Samba-server på Ubuntu. Som alltid, om du hittade det här inlägget användbart, prenumerera sedan på vårt kostnadsfria nyhetsbrev., Och du kanske också vill läsa följande artikel för att dela skrivare i det lokala nätverket.

  • Ställ in CUPS skrivarserver på Ubuntu (Bonjour, IPP, Samba, AirPrint)
Betygsätt denna handledning

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *