Samba je bezplatný software s otevřeným zdrojovým kódem, který lze použít ke sdílení souborů, složek a tiskáren mezi systémy Linux a Windows. Používá se také pro autentizaci a autorizaci, rozlišení názvu a oznámení služby. Může být provozován na různých operačních systémech včetně Linuxu, Unixu, OpenVMS a mnoha dalších.
V tomto tutoriálu se naučíme, jak nainstalovat Sambu a nakonfigurovat ji jako samostatný server pro sdílení na CentOS 8.
Předpoklady
- Server se systémem CentOS 8.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Instalovat Samba Server
Ve výchozím nastavení je balíček Samba dostupný ve výchozím úložišti CentOS. Můžete jej nainstalovat pomocí následujícího příkazu:
dnf install samba samba-common samba-client -y
Po instalaci Samby spusťte službu SMB a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start smb
systemctl enable smb
Nyní můžete ověřit službu Samba pomocí následujícího příkazu:
systemctl status smb
Měli byste získat následující výstup:
? smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 2072 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 25028) Memory: 33.8M CGroup: /system.slice/smb.service ??2072 /usr/sbin/smbd --foreground --no-process-group ??2074 /usr/sbin/smbd --foreground --no-process-group ??2075 /usr/sbin/smbd --foreground --no-process-group ??2076 /usr/sbin/smbd --foreground --no-process-group
Vytvoření veřejného sdílení pomocí Samby
V této sekci vytvoříme veřejnou sdílenou složku se Sambou, aby měl každý přístup k veřejnému sdílenému adresáři bez hesla.
Vytvořit veřejný sdílený adresář
Nejprve vytvořte sdílenou složku s názvem public a také vytvořte dva soubory ve veřejném adresáři:
mkdir -p /samba/share/public
touch /samba/share/public/file1.txt
touch /samba/share/public/file2.txt
Dále přiřaďte potřebná oprávnění a vlastnictví pomocí následujícího příkazu:
chmod -R 0755 /samba/share/
chmod -R 0755 /samba/share/public
chown -R nobody:nobody /samba/share
chown -R nobody:nobody /samba/share/public
Konfigurovat Sambu
Dále budete muset nakonfigurovat Sambu pro sdílení veřejného adresáře.
Nejprve vytvořte záložní kopii souboru /etc/samba/smb.conf pomocí následujícího příkazu:
mv /etc/samba/smb.conf /etc/samba/smb.bak
Dále vytvořte nový konfigurační soubor Samba:
nano /etc/samba/smb.conf
Přidejte následující řádky:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = samba-server security = user map to guest = bad user dns proxy = no [Public] path = /samba/share/public browsable =yes writable = yes guest ok = yes read only = no
Uložte a zavřete soubor. Poté restartujte službu Samba, aby se změny projevily:
systemctl restart smb
Dále otestujte konfiguraci Samby pomocí následujícího příkazu:
testparm
Měli byste vidět následující výstup:
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No
Konfigurovat SELinux a bránu firewall
Dále nastavte správné booleovské hodnoty SELinux a bezpečnostní kontext ve sdíleném adresáři pomocí následujícího příkazu:
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"restorecon /samba/share/public
Dále všechny služby Samba přes firewalld s následujícím příkazem:
firewall-cmd --add-service=samba --zone=public --permanent
firewall-cmd --reload
Přístup ke sdílení Samba z Ubuntu Gnome
Chcete-li získat přístup ke sdílení Samba, přejděte na vzdálený počítač, otevřete správce souborů Gnome a klikněte na Připojit komu Server jak je uvedeno níže:
Zadejte IP adresu serveru Samba a klikněte na Připojit knoflík. Po úspěšném připojení byste měli vidět sdílení Samba na následující obrazovce:
Nyní klikněte na Veřejné adresář, měli byste vidět své soubory na následující obrazovce:
Přístup k Samba Share z příkazového řádku Ubuntu
Ke sdílení Samba můžete také přistupovat z příkazového řádku.
Nejprve vypište seznam všech dostupných sdílení Samba pomocí následujícího příkazu:
smbclient -L //45.58.38.51
Měli byste vidět následující výstup:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
Sdílení Samba můžete také připojit pomocí protokolu cifs. Chcete-li tak učinit, nainstalujte balíček cifs-utils pomocí následujícího příkazu:
apt-get install cifs-utils -y
Dále připojte sdílenou složku Samba do adresáře /mnt pomocí následujícího příkazu:
mount -t cifs //45.58.38.51/public /mnt/
Budete požádáni o zadání hesla, jak je uvedeno níže:
Password for [email protected]//45.58.38.51/public:
Stačí stisknout Enter bez zadání jakéhokoli hesla pro připojení sdílení Samba:
Nyní máte přístup ke sdílení Samba v /mnt direcotry:
ls /mnt/
Měli byste vidět následující výstup:
file1.txt file2.txt
Vytvořit soukromé sdílení pomocí Samby
V této sekci vytvoříme soukromou sdílenou složku se Sambou, takže pouze ověřený uživatel bude mít přístup k soukromému sdílenému adresáři.
Vytvořit uživatele a skupinu
Nejprve vytvořte skupinu s názvem private pomocí následujícího příkazu:
groupadd private
Dále vytvořte nového uživatele s názvem privateuser a přidejte jej do soukromé skupiny:
useradd -g private privateuser
Dále nastavte heslo pro uživatele pomocí následujícího příkazu:
smbpasswd -a privateuser
Výstup:
New SMB password: Retype new SMB password: Added user privateuser.
Vytvoření soukromého sdíleného adresáře
Dále vytvořte sdílenou složku s názvem private a také vytvořte dva soubory v soukromém adresáři:
mkdir -p /samba/share/private
touch /samba/share/private/private1.txt
touch /samba/share/private/private2.txt
Dále přidělte správná oprávnění a vlastnictví pomocí následujícího příkazu:
chmod -R 0770 /samba/share/private
chown -R root:private /samba/share/private
Dále nakonfigurujte kontext SELinux pro soukromý adresář pomocí následujícího příkazu:
semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"
restorecon /samba/share/private
Nakonfigurujte Sambu
Dále otevřete konfigurační soubor Samba a definujte soukromé sdílení:
nano /etc/samba/smb.conf
Na konec souboru přidejte následující řádky:
[Private] path = /samba/share/private valid users = @private guest ok = no writable = yes browsable = yes
Uložte a zavřete soubor a poté restartujte službu Samba, aby se změny projevily:
systemctl restart smb
Dále zkontrolujte konfiguraci Samby pomocí následujícího příkazu:
testparm
Měli byste vidět následující výstup:
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No [Private] path = /samba/share/private read only = No valid users = @private
Přístup ke sdílení Samba z příkazového řádku Ubuntu
Nejprve otevřete dostupnou sdílenou složku pomocí následujícího příkazu:
smbclient -L //45.58.38.51
Měli byste vidět následující výstup:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk Private Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
Dále se připojte k serveru Samba a pomocí následujícího příkazu uveďte seznam dostupných sdílených položek:
smbclient //45.58.38.51/private -U privateuser
Budete požádáni o zadání hesla, jak je uvedeno níže:
Enter privateuser's password:
Zadejte své heslo a stiskněte Enter pro přístup k prostředí Samba, jak je znázorněno níže:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] smb: \>
Nyní zadejte seznam dostupných sdílených položek pomocí následujícího příkazu:
smb: \> ls
Měli byste vidět následující výstup:
. D 0 Tue Mar 3 10:03:22 2020 .. D 0 Tue Mar 3 10:01:56 2020 private1.txt N 0 Tue Mar 3 10:03:17 2020 private2.txt N 0 Tue Mar 3 10:03:22 2020 51194 blocks of size 2097152. 49358 blocks available
Nyní ukončete prostředí Samba pomocí následujícího příkazu:
smb: \>exit
Sdílení Samba můžete také připojit do adresáře /opt:
mount -t cifs -o user=privateuser //45.58.38.51/private /opt
Budete požádáni o zadání hesla, jak je uvedeno níže:
Password for [email protected]//45.58.38.51/private: *********
Zadejte své heslo a stiskněte Enter pro připojení sdílení Samba.
Nyní můžete zkontrolovat svůj podíl Samba v adresáři /opt, jak je znázorněno níže:
ls /opt/
Výstup:
private1.txt private2.txt
Přístup ke sdílení Samba z Ubuntu Gnome
Chcete-li získat přístup ke sdílení Samba, přejděte na vzdálený počítač, otevřete správce souborů Gnome a klikněte na Připojit komu Server jak je uvedeno níže:
Zadejte IP adresu serveru Samba a klikněte na Připojit knoflík. Po úspěšném připojení byste měli vidět sdílení Samba na následující obrazovce:
Nyní klikněte na Soukromé adresář, zadejte své uživatelské jméno a heslo a poté klikněte na tlačítko Připojit. Soubory byste měli vidět na následující obrazovce:
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali server Samba na CentOS 8.