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ägetshare
. - Ställ in
map to guest = bad user
I den globala delen av Samba-konfigurationsfilen., Detta gör attsmbd
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. - ange
guest 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 till
nobody
– 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)