Så här installerar och konfigurerar du Samba på CentOS 7

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.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo 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=sambafirewall-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/joshsudo 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 sadminsudo 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
/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 in no kan andra användare inte se resursen.
  • read only – Om de användare som anges i listan valid 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.servicesudo 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.

  1. Öppna Files och klicka på ”Other Locations” (Andra platser) i sidofältet.
  2. 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.
  3. Klicka på ”Connect” och följande skärm visas:

  4. Välj ”Registered User” (Registrerad användare), ange Samba-användarnamn och lösenord och klicka på ”Connect” (Anslut).
  5. 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.

  1. Öppna ”Finder”, välj ”Gå” och klicka på ”Anslut till”.
  2. I ”Anslut till” anger du adressen till Samba-delen i följande format smb://samba_hostname_or_server_ip/sharename.

  3. Klicka på ”Connect” och följande skärm visas:

  4. Välj ”Registered User” (Registrerad användare), skriv in Samba-användarnamnet och lösenordet och klicka på ”Connect”.
  5. 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.

  1. Öppna File Explorer och högerklicka på ”This PC” i den vänstra rutan.
  2. Välj ”Choose a custom network location” (Välj en anpassad nätverksplats) och klicka sedan på ”Next” (Nästa).
  3. 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.

  4. Klicka på ”Next” (Nästa) och du kommer att uppmanas att ange inloggningsuppgifter enligt nedan:

  5. I nästa fönster kan du skriva ett anpassat namn för nätverksplatsen. Standardnamnet hämtas av Samba-servern.

  6. Klicka på ”Next” (Nästa) för att gå vidare till den sista skärmen i guiden för anslutningskonfiguration.
  7. 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.

Lämna ett svar

Din e-postadress kommer inte publiceras.