Server Samba
Jest to darmowy, multiplatformowy serwer udostępniania plików i drukarek
Założenia
Masz utworzony folder /smb. Na początku ustawimy pełny dostęp dla głównego urzytkownika do tego folderu. Stworzę nową grupę smb-rw z pełnym dostępem do tego folderu.
Sprawdź
Sprawdź, czy nie masz już zainstalowanego servera Samba i czy nie pracuje w systemie. Najprawdopodobniej jeszcze nie masz uruchomionego - to zobaczysz taki komunikat:
$ sudo systemctl status smbd Unit samba.service could not be found.
Natomiast gdy ktoś wcześniej zainstalował ten serwer i jest uruchomiony to zobaczysz:
$ sudo systemctl status smbd ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-01-29 23:13:42 GMT; 23s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Process: 59256 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS) Main PID: 59260 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 4407) Memory: 7.5M CGroup: /system.slice/smbd.service ├─59260 /usr/sbin/smbd --foreground --no-process-group ├─59262 /usr/sbin/smbd --foreground --no-process-group ├─59263 /usr/sbin/smbd --foreground --no-process-group └─59267 /usr/sbin/smbd --foreground --no-process-group Jan 29 23:13:42 server systemd[1]: Starting Samba SMB Daemon... Jan 29 23:13:42 server systemd[1]: Started Samba SMB Daemon.
Aby przerwać wyświetlanie informacje - wciśnij [Q] lub [CTRL]+[C]. W tym przypadku możesz przejść dalej. W przeciwnym musisz zainstalować server Samba.
Zainstaluj
Wystarczy odświeżyć źródła i zainstalować najnowszą wersję serwera Samba. Proponuję też doinstalować programy użytkowe dla tego servera.
$ sudo apt update $ sudo apt install acl attr samba samba-dsdb-modules samba-vfs-modules winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user -y
Ustaw Firewall
Najpierw sprawdź jakie usługi można odblokować na firewall'u.
$ sudo ufw app list Available applications: OpenSSH Samba
Na początek otwórz porty samby, ale tylko w sieci wewnętrznej.
$ ufw allow from 192.168.0.0/24 to any app Samba
Upewnij się, czy reguły zostały dopisane.
$ sudo ufw status Status: active To Action From -- ------ ---- Samba ALLOW 192.168.0.0/24
Zobacz sobie jeszcze dla ciekawości które porty otworzy firewall dla Samby
$ sudo ufw app info Samba Profile: Samba Title: LanManager-like file and printer server for Unix Description: The Samba software suite is a collection of programs that implements the SMB/CIFS protocol for unix systems, allowing you to serve files and printers to Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred to as the LanManager or NetBIOS protocol. Ports: 137,138/udp 139,445/tcp
Uprawnienia
Zaraz po instalacji Serwera Ubuntu właścicielem wszystkich plików i folderów jest root z grupy root i mają uprawnienia ustawione na: rwxr-xr-x. Natomiast po instalacji serwera Samba tworzona jest grupa sambashare i użytkownik o takiej samej nazwie. Dlatego musisz zmienić użytkownika i grupę dla wszystkich folderów gdzie będziesz zapisywał swoje strony internetowe. Na początek odbierzemy też większość uprawnień - dla bezpieczeństwa.
$ sudo chown sambashare:sambashare /smb -R $ sudo chmod 500 /smb -R $ sudo ls -l / total 4 dr-x------ 2 sambashare sambashare 4096 Jan 24 14:26 smb
Konfiguracja
Większość ustawień jest w pliku /etc/samba/smb.conf dobrym zwyczajem jest przed dokonaniem zmian abyś wykonał kopię tego pliku.
$ sudo cp /etc/samba/smb.conf{,.backup} $ ls /etc/samba/ -l total 32 -rw-r--r-- 1 root root 8 Oct 16 11:53 gdbcommands -rw-r--r-- 1 root root 8942 Jan 27 22:49 smb.conf -rw-r--r-- 1 root root 8942 Jan 29 23:59 smb.conf.backup drwxr-xr-x 2 root root 4096 Oct 16 11:53 tls
Kolej na edycję
$ sudo mcedit /etc/samba/smb.conf
Po dokonaniu zmian i zapisaniu pliku [F10] musisz sprawdzić, czy wszystko jest OK i zrestartować Sambę
$ testparm 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] netbios name = UBUNTU2010 server role = standalone server server string = %h server (Samba, Ubuntu) workgroup = WORKGROUP [share_ro] guest ok = Yes path = /smb/share_ro
$ sudo systemctl restart smbd
To na początek wystarczy. Odpalimy serwer Samby i udostępnimy jeden folder /smb/share_ro - Read Only - tylko do odczytu.