Samba är en fri och öppen källkod som återimplementerar SMB/CIFS-protokollet för fildelning i nätverk och som gör det möjligt för slutanvändare att komma åt filer, skrivare och andra delade resurser.
I den här handledningen kommer vi att visa hur du installerar Samba på CentOS 7 och konfigurerar det som en fristående server för att tillhandahålla fildelning mellan olika operativsystem i ett nätverk.
Vi skapar följande Samba-andelar och användare.
Användare:
- sadmin – En administrativ användare med läs- och skrivbehörighet till alla delningar.
- josh – En vanlig användare med en egen privat fildelning.
Delningar:
- users – Den här delningen kommer att vara åtkomlig med läs- och skrivbehörighet för alla användare.
- josh – Den här resursen kommer att vara tillgänglig med läs-/skrivbehörighet endast för användarna josh och sadmin.
Fildelarna kommer att vara tillgängliga från alla enheter i nätverket. Senare i handledningen kommer vi också att ge detaljerade instruktioner om hur du ansluter till Samba-servern från Linux-, Windows- och macOS-klienter.
Förutsättningar #
För du börjar ska du se till att du är inloggad på ditt CentOS 7-system som en användare med sudo-privilegier .
Installation av Samba på CentOS #
Samba finns tillgängligt i CentOS-standardförråden. För att installera den på ditt CentOS-system kör du följande kommando:
sudo yum install samba samba-client
När installationen är klar startar du Samba-tjänsterna och aktiverar dem så att de startar automatiskt vid uppstart av systemet:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
Tjänsten smbd
tillhandahåller tjänster för fildelning och utskrift och lyssnar på TCP-portarna 139 och 445. Tjänsten nmbd
tillhandahåller NetBIOS over IP-namngivningstjänster till klienter och lyssnar på UDP-port 137.
Konfigurera brandväggen #
Nu när Samba är installerat och körs på din CentOS-maskin måste du konfigurera din brandvägg och öppna de nödvändiga portarna. För att göra det kör du följande kommandon:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
Skapa Samba-användare och katalogstruktur #
För att underlätta underhåll och flexibilitet kommer alla Samba-kataloger och data att ligga i katalogen /samba
i stället för att använda standardhemmkatalogerna (/home/user
).
Start med att skapa katalogen /samba
:
sudo mkdir /samba
Skapa en ny grupp med namnet sambashare
. Senare kommer vi att lägga till alla Samba-användare i den här gruppen.
sudo groupadd sambashare
Sätt gruppens ägarskap i katalogen /samba
till sambashare
:
sudo chgrp sambashare /samba
Samba använder Linux användar- och gruppbehörighetssystem, men har en egen autentiseringsmekanism som är skild från den vanliga Linux-autentiseringen. Vi kommer att skapa användarna med hjälp av standardverktyget Linux useradd
och sedan ställa in användarlösenordet med verktyget smbpasswd
.
Som vi nämnde i inledningen kommer vi att skapa en vanlig användare som kommer att ha tillgång till sin privata fildelning och ett administrativt konto med läs- och skrivbehörighet till alla delningar på Samba-servern.
Skapa Samba-användare #
För att skapa en ny användare med namnet josh
använder du följande kommando:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
Oalternativen useradd
har följande innebörd:
Skapa användarens hemkatalog och ange katalogens ägarskap till användaren josh
och gruppen sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
Med följande kommando läggs setgid-biten till i katalogen /samba/josh
så att de nyskapade filerna i den här katalogen ärver den överordnade katalogens grupp. På så sätt kommer filen, oavsett vilken användare som skapar en ny fil, att ha group-owner sambashare
. Om du till exempel inte ställer in katalogens behörigheter till 2770
och användaren sadmin
skapar en ny fil kommer användaren josh
inte att kunna läsa/skriva i den här filen.
sudo chmod 2770 /samba/josh
Lägg till användarkontot josh
till Samba-databasen genom att ställa in användarlösenordet:
sudo smbpasswd -a josh
Du kommer att bli ombedd att ange och bekräfta användarlösenordet.
New SMB password:Retype new SMB password:Added user josh.
När lösenordet är inställt aktiverar du Samba-kontot genom att skriva:
sudo smbpasswd -e josh
Enabled user josh.
För att skapa en annan användare upprepar du samma process som vid skapandet av användaren josh
.
Nästan, låt oss skapa en användare och grupp sadmin
. Alla medlemmar i den här gruppen kommer att ha administrativa behörigheter. Om du senare vill ge administrativa behörigheter till en annan användare lägger du helt enkelt till den användaren i gruppen sadmin
.
Skapa den administrativa användaren genom att skriva:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
Kommandot ovan kommer också att skapa en grupp sadmin
och lägga till användaren i både grupperna sadmin
och sambashare
.
Sätt ett lösenord och aktivera användaren:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Nästan skapar du delningskatalogen Users
:
sudo mkdir /samba/users
Sätt katalogens äganderätt till användaren sadmin
och gruppen sambashare
:
sudo chown sadmin:sambashare /samba/users
Denna katalog kommer att vara tillgänglig för alla autentiserade användare. Följande kommando konfigurerar skriv- och läsbehörighet för medlemmar i gruppen sambashare
i katalogen /samba/users
:
sudo chmod 2770 /samba/users
Konfigurera Samba-utdelningar #
Öppna Samba-konfigurationsfilen och lägg till avsnitten:
sudo nano /etc/samba/smb.conf
Oalternativen har följande betydelse:
-
och
– Namnen på de delningar som du ska använda när du loggar in.
-
path
– Sökvägen till delningen. -
browseable
– Om delningen ska anges i listan över tillgängliga delningar. Genom att ställa inno
kan andra användare inte se resursen. -
read only
– Om de användare som anges i listanvalid users
kan skriva till den här resursen. -
force create mode
– Ställer in behörigheter för de nyskapade filerna i den här resursen. -
force directory mode
– Ställer in behörigheterna för de nyskapade katalogerna i den här resursen. -
valid users
– En lista över användare och grupper som har tillgång till resursen. Grupper har symbolen@
som prefix.
För mer information om tillgängliga alternativ se dokumentationssidan för Samba-konfigurationsfilen.
När du är klar startar du om Samba-tjänsterna med:
sudo systemctl restart smb.service
sudo systemctl restart nmb.service
I de följande avsnitten kommer vi att visa hur du ansluter till en Samba-delning från Linux-, macOS- och Windows-klienter.
Anslutning till en Samba-delning från Linux #
Linuxanvändare kan komma åt Samba-delningen från kommandoraden, använda filhanteraren eller montera Samba-delningen.
Användning av smbclient-klienten #
smbclient
är ett verktyg som gör att du kan komma åt Samba från kommandoraden. Paketet smbclient
är inte förinstallerat på de flesta Linux-distributioner så du måste installera det med din distributions pakethanterare.
För att installera smbclient
på Ubuntu och Debian kör:
sudo apt install smbclient
För att installera smbclient
på CentOS och Fedora kör:
sudo yum install samba-client
Syntaxen för att komma åt en Samba-resurs är följande:
mbclient //samba_hostname_or_server_ip/share_name -U username
För att ansluta till en resurs som heter josh
på en Samba-server med IP-adress 192.168.121.118
som användare josh
kör du till exempel:
smbclient //192.168.121.118/josh -U josh
Du kommer att uppmanas att ange användarens lösenord.
Enter WORKGROUP\josh's password:
När du anger lösenordet loggas du in i kommandoradsgränssnittet för Samba.
Try "help" to get a list of possible commands.smb: \>
Mount the Samba share #
För att montera en Samba share på Linux måste du först installera paketet cifs-utils
.
På Ubuntu och Debian kör:
sudo apt install cifs-utils
På CentOS och Fedora kör:
sudo yum install cifs-utils
Nästan skapar du en monteringspunkt:
sudo mkdir /mnt/smbmount
Mountar du resursen med följande kommando:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
För att montera en resurs som heter josh
på en Samba-server med IP-adress 192.168.121.118
som användare josh
till monteringspunkten /mnt/smbmount
kör du till exempel:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
Du kommer att uppmanas att ange användarens lösenord.
Password for josh@//192.168.121.118/josh: ********
Användning av GUI #
Files, standardfilhanteraren i Gnome, har ett inbyggt alternativ för att komma åt Samba-utdelningar.
- Öppna Files och klicka på ”Other Locations” (Andra platser) i sidofältet.
- I ”Connect to Server” (Anslut till servern) skriver du in adressen för Samba-utdelningen i följande format
smb://samba_hostname_or_server_ip/sharename
. - Klicka på ”Connect” och följande skärm visas:
- Välj ”Registered User” (Registrerad användare), ange Samba-användarnamn och lösenord och klicka på ”Connect” (Anslut).
- Filerna på Samba-servern visas.
Anslutning till en Samba Share från macOS #
I macOS kan du komma åt Samba Shares antingen från kommandoraden eller genom att använda macOS standardfilhanteraren Finder. Följande steg visar hur du får tillgång till delningen med hjälp av Finder.
- Öppna ”Finder”, välj ”Gå” och klicka på ”Anslut till”.
- I ”Anslut till” anger du adressen till Samba-delen i följande format
smb://samba_hostname_or_server_ip/sharename
.
- Klicka på ”Connect” och följande skärm visas:
- Välj ”Registered User” (Registrerad användare), skriv in Samba-användarnamnet och lösenordet och klicka på ”Connect”.
- Filerna på Samba-servern visas.
Ansluta till en Samba-delning från Windows #
Windows-användare har också möjlighet att ansluta till Samba-delningen från både kommandoraden och GUI. Stegen nedan visar hur du kommer åt delningen med hjälp av Windows File Explorer.
- Öppna File Explorer och högerklicka på ”This PC” i den vänstra rutan.
- Välj ”Choose a custom network location” (Välj en anpassad nätverksplats) och klicka sedan på ”Next” (Nästa).
- I ”Internet or network address” (Internet- eller nätverksadress) skriver du in adressen till Samba-delen i följande format
\samba_hostname_or_server_ip\sharename
.
- Klicka på ”Next” (Nästa) och du kommer att uppmanas att ange inloggningsuppgifter enligt nedan:
- I nästa fönster kan du skriva ett anpassat namn för nätverksplatsen. Standardnamnet hämtas av Samba-servern.
- Klicka på ”Next” (Nästa) för att gå vidare till den sista skärmen i guiden för anslutningskonfiguration.
- Klicka på ”Finish” (Slutför) och filerna på Samba-servern kommer att visas.
Slutsats #
I den här handledningen har du lärt dig hur du installerar en Samba-server på CentOS 7 och skapar olika typer av delade och användare. Vi har också visat hur du ansluter till Samba-servern från Linux-, macOS- och Windows-enheter.