w tym samouczku dowiemy się, jak zainstalować i skonfigurować serwer Samby na Ubuntu do udostępniania plików w sieci lokalnej. Samba jest darmową i otwartoźródłową implementacją protokołu SMB/CIFS dla systemów Unix i Linux, która umożliwia współdzielenie plików i wydruków między systemami Unix / Linux, Windows i macOS w sieci lokalnej.
Samba jest zwykle instalowany i uruchamiany na Linuksie., Składa się z kilku programów, które służą różnym, ale pokrewnym celom, z których najważniejsze dwa to:
- smbd: zapewnia usługę SMB/CIFS (udostępnianie i drukowanie plików), może również działać jako kontroler domeny Windows.
- NMBD: ten Demon dostarcza usługę nazw NetBIOS, nasłuchuje żądań serwera nazw. Pozwala również na odnalezienie serwera Samby przez inne komputery w sieci.
Jak zainstalować serwer Samby na Ubuntu
Samba jest zawarty w większości dystrybucji Linuksa. Aby zainstalować Sambę na Ubuntu, po prostu uruchom następujące polecenie w terminalu.,
sudo apt install samba samba-common-bin
najnowszą dostępną stabilną wersją jest 4.12.0, wydana 3 marca 2019 roku. Aby sprawdzić wersję Samby, Uruchom
smbd --version
Przykładowe wyjście:
Version 4.7.6-Ubuntu
aby sprawdzić, czy usługa Samby jest uruchomiona, wydaj następujące polecenie.
systemctl status smbd nmbd
aby uruchomić te dwie usługi, wydaj następujące polecenie:
sudo systemctl start smbd nmbd
Po uruchomieniusmbd
będzie nasłuchiwać na porcie TCP 139 i 445. nmbd
będzie nasłuchiwać na portach UDP 137 i 138.,
- TCP 139: używany do udostępniania plików i drukarek oraz innych operacji.
- TCP 445: Port CIFS bez NetBIOS.
- UDP 137: używany do przeglądania sieci NetBIOS.
- UDP 138: używany dla usługi nazw NetBIOS.
Jeśli włączyłeś firewall UFW na Ubuntu, musisz otworzyć powyższe porty w firewallu za pomocą następującego polecenia.
sudo ufw allow samba
Utwórz prywatny udział Samby
w tej sekcji zobaczymy, jak utworzyć prywatny udział Samby, który wymaga od klienta podania nazwy użytkownika i hasła, aby uzyskać dostęp., Główny plik konfiguracyjny Samby znajduje się pod adresem: /etc/samba/smb.conf
. Możesz edytować go w programie terminal za pomocą edytora tekstu wiersza poleceń, takiego jak nano
.
sudo nano /etc/samba/smb.conf
w sekcjiupewnij się, że wartość
workgroup
jest taka sama z ustawieniami grup roboczych komputerów z systemem Windows.,
workgroup = WORKGROUP
Możesz znaleźć ustawienie na komputerze z systemem Windows, przechodząc do Control Panel
> System and Security
> System
.
następnie przewiń w dół do dołu pliku. (W edytorze tekstu nano można to osiągnąć, naciskając CTRL+W
, a następnie CTRL+V
. ) Dodaj nową sekcję Jak Poniżej.,
Wyjaśnienie:
-
Private
to nazwa folderu, który będzie wyświetlany w sieci Windows. - komentarz jest opisem folderu udostępnionego.
- parametr path określa ścieżkę do folderu udostępnionego. Używam
/srv/samba/private/
jako przykład. Możesz również użyć folderu w katalogu domowym. -
browseable = yes
: umożliwia innym komputerom w sieci wyświetlanie serwera Samby i udziału Samby., Jeśli ustawione na no, użytkownicy muszą znać nazwę serwera Samba, a następnie ręcznie wprowadzić ścieżkę w menedżerze plików, aby uzyskać dostęp do folderu udostępnionego. -
guest ok = no
: wyłączenie dostępu gościa. Innymi słowy, musisz wprowadzić nazwę użytkownika i hasło na komputerze klienckim, aby uzyskać dostęp do folderu udostępnionego. -
writable = yes
: przyznaje klientom uprawnienia do odczytu i zapisu. -
valid users = @samba
: dostęp do tego udziału Samby mają tylko użytkownicy z grupy.
Zapisz i zamknij plik., (Aby zapisać plik w edytorze tekstu Nano, naciśnij Ctrl+O
, a następnie naciśnij Enter, aby potwierdzić nazwę pliku do zapisu. Aby zamknąć plik, naciśnij Ctrl+X
.) Teraz musimy utworzyć użytkownika Samby. Najpierw musimy utworzyć standardowe konto użytkownika Linuksa za pomocą następującego polecenia. Zastąp username
żądaną nazwą użytkownika.
sudo adduser username
zostaniesz poproszony o ustawienie hasła Uniksa., Następnie musisz również ustawić osobne hasło Samby dla nowego Użytkownika za pomocą następującego polecenia:
sudo smbpasswd -a username
Utwórz grupę samba.
sudo groupadd samba
i dodaj tego użytkownika do grupy samba.
sudo gpasswd -a username samba
Utwórz prywatny folder udostępniania.
sudo mkdir -p /srv/samba/private/
Grupa samba musi mieć uprawnienia do odczytu, zapisu i wykonywania w folderze udostępnionym. Możesz przyznać te uprawnienia, wykonując następujące polecenie., (Jeśli Twój system nie ma polecenia setfacl
, musisz zainstalować pakiet acl
z sudo apt install acl
.)
sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/
następnie uruchom następujące polecenie, aby sprawdzić, czy nie ma błędów składniowych.
testparm
teraz pozostaje tylko ponownie uruchomićsmbd
Inmbd
demona.,
sudo systemctl restart smbd nmbd
Jak utworzyć publiczny udział Samba bez uwierzytelniania
aby utworzyć publiczny udział bez potrzeby podania nazwy użytkownika i hasła, muszą być spełnione następujące warunki.
- Ustaw
security = user
w globalnej sekcji pliku konfiguracyjnego Samby. Chociaż możesz utworzyć publiczny udział w trybiesecurity = share
, ale ten tryb zabezpieczeń jest przestarzały. Zdecydowanie zaleca się unikanie trybushare
. - Ustaw
map to guest = bad user
w globalnej sekcji pliku konfiguracyjnego Samby., Spowoduje to, żesmbd
użyje konta gościa do uwierzytelniania klientów, którzy nie mają zarejestrowanego konta na serwerze Samba. Ponieważ jest to konto gościa, klienci Samby nie muszą wprowadzać hasła. - Ustaw
guest ok = yes
w definicji udziału, aby umożliwić dostęp gościowi. - przyznaj uprawnienia do odczytu, zapisu i wykonywania folderu publicznego na konto
nobody
, które jest domyślnym kontem gościa.
w rzeczywistości pierwsze dwa warunki są już spełnione, ponieważ Samba domyślnie używa tych dwóch ustawień.,
oto przewodnik krok po kroku, jak utworzyć udostępnienie publiczne. Najpierw otwórz i edytuj plik konfiguracyjny Samby.
sudo nano /etc/samba/smb.conf
w sekcjiupewnij się, że wartość
workgroup
jest taka sama z ustawieniami grup roboczych komputerów z systemem Windows.
workgroup = WORKGROUP
Możesz znaleźć ustawienie na komputerze z systemem Windows, przechodząc do Control Panel
> System and Security
> System
.,
następnie przewiń w dół do dołu pliku i wklej następujące wiersze.
Zapisz i zamknij plik. Następnie utwórz folder /srv/samba/public/
.
sudo mkdir -p /srv/samba/public
następnie upewnij się, że kontonobody
ma uprawnienia do odczytu, zapisu i wykonywania w folderze publicznym, wykonując następujące polecenie. (Jeśli Twój system nie ma polecenia setfacl
, musisz zainstalować pakiet acl
z sudo apt install acl
.,)
sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/
Uruchom ponownie smbd i nmbd.
sudo systemctl restart smbd nmbd
dostęp do folderu udostępnionego samby z systemu Windows
na komputerze z systemem Windows, który znajduje się w tej samej sieci, otwórz Eksplorator plików i kliknijNetwork
w lewym okienku. Jeśli zobaczysz następujący komunikat, kliknij go i włącz wykrywanie sieci i udostępnianie plików.
File sharing is turned off. Some network computers and devices might not be visible.
następnie wprowadź\\
a następnie adres IP serwera Samba w pasku adresu Eksploratora plików, tak:\\192.168.0.102
., Zobaczysz listę współdzielonych zasobów na serwerze Samba.
następnie kliknij dwukrotnie folder udostępniony. Aby uzyskać dostęp do udziału prywatnego, musisz wprowadzić nazwę użytkownika i hasło samby. Nie musisz tego robić, aby uzyskać dostęp do publicznego udostępniania.
Po podłączeniu możesz odczytywać, zapisywać i usuwać pliki w folderze udostępnionym Samby.
Błąd połączenia
Jeśli pojawi się następujący błąd:
You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.
Możesz spróbować połączyć się z udziałem samby z wiersza polecenia., Otwórz wiersz polecenia, a następnie uruchom następujące polecenie, aby zamknąć bieżącą sesję Samby.
net use \\samba-server-ip\share-name /delete
następnie połącz się z udziałem Samby za pomocą następującego polecenia:
net use \\samba-server-ip\share-name /user:samba-username password
Po pomyślnym wykonaniu powyższego polecenia przejdź do zakładki sieć w Eksploratorze plików i teraz powinieneś mieć dostęp do udziału Samby.
mapowanie dysku w systemie Windows
jedną z funkcji systemu operacyjnego Windows jest możliwość mapowania litery dysku (np. S:) do zdalnego katalogu., Aby zmapować literę dysku S:
do udziału Samby, kliknij prawym przyciskiem myszy folder udostępniony Samba i wybierz opcję Zmapuj dysk sieciowy. Następnie wybierz literę dysku i kliknij Zakończ.
po ustanowieniu mapowania dysku aplikacje mogą uzyskać dostęp do plików w udziale Samby za pomocą litery dysku S:
. Ten udział Samby zostanie automatycznie zamontowany po zalogowaniu się na komputerze z systemem Windows.,
dostęp do folderu udostępniania Samby w menedżerze plików Nautilus na Linuksie
Jeśli używasz menedżera plików Nautilus, kliknijOther Locations
w lewym okienku. Na dole zobaczysz opcję połączenia z serwerem. Aby uzyskać dostęp do udziału Samby, wpisz smb://
, a następnie adres IP serwera Samby i naciśnij Enter. Na przykład:
- smb://192.168.0.102
zobaczysz listę współdzielonych zasobów na serwerze Samba.,
Jeśli klikniesz prywatny folder udostępniony, musisz wprowadzić nazwę Użytkownika i hasło Samby. Jeśli klikniesz publiczny folder udostępniony, wybierz połączenie jako anonimowe.
automatycznie montuj udział samby z wiersza poleceń w Linuksie
Jeśli chcesz automatycznie montować udział Samby podczas rozruchu, możesz użyć wiersza poleceń, aby zamontować, a następnie dodać wpis do pliku /etc/fstab
. Aby to zrobić, musisz zainstalować pakiet cifs-utils
.,
CentOS/RHEL
sudo dnf install cifs-utils
Debian/Ubuntu
sudo apt install cifs-utils
następnie utwórz punkt montowania dla udziału Samby.
sudo mkdir /mnt/samba-private
teraz możesz użyć następującego polecenia, aby zamontować prywatny folder udostępniony.
sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/
poprosi Cię o podanie hasła Samby. Następnie zostanie zamontowany w katalogu /mnt/samba-private/
.
aby automatycznie zamontować udział Samby, Edytuj plik/etc/fstab
.
sudo nano /etc/fstab
Dodaj następujący wiersz do pliku.,
Gdzie:
- //192.168.0.102 / private: adres IP serwera Samby i nazwa akcji.
- /mnt/samba-private: punkt montowania dla udziału Samby.
- cifs: typ systemu plików
- x-systemd.automount: ta opcja mówi systemd, aby utworzyć jednostkę automount dla systemu plików. Używamy tego, ponieważ zapewnia to zamontowanie zdalnego systemu plików dopiero po uzyskaniu dostępu do sieci.
- _netdev: określa, że mount wymaga sieci.
- poświadczenia=: Linux powinien szukać poświadczeń w pliku
/etc/samba-credential.conf
., - UID=1000, gid=1000: domyślnie zamontowany system plików będzie własnością użytkownika root. Używamy uid i gid do zmiany własności systemu plików. Zwykle używasz własnego uid i gid, które domyślnie mają wartość 1000.
- x – gvfs-show: jeśli używasz środowiska graficznego GNOME lub jego pochodnych, możesz użyć tej opcji, aby pokazać zamontowany system plików w menedżerze plików.
Zapisz i zamknij plik. Następnie utwórz plik poświadczenia.
sudo nano /etc/samba-credential.conf
dodaj następujące wiersze do pliku.
username=your_samba_usernamepassword=samba_passworddomain=WORKGROUP
Zapisz i zamknij plik., Upewnij się, że tylko użytkownik root może odczytać ten plik.
sudo chmod 600 /etc/samba-credential.conf
Jeśli teraz zrestartujesz swój komputer z Linuksem, udział Samby zostanie automatycznie zamontowany.
nie możesz napisać do akcji Samby?
mount CIFS opisany powyżej pozwala na zapis do udziału Samby. Jeśli podczas tworzenia pliku widzisz następujący błąd:
Read-only file system
sprawdź, czy Ustawiłeś writable = yes
w pliku konfiguracyjnym Samby., Czasami folder udostępniony Samby znajduje się na zewnętrznym dysku twardym, a następnie upewnij się, że zewnętrzny dysk twardy jest zamontowany w trybie odczytu i zapisu na serwerze Samby. Na przykład zamontowałem mój dysk twardy btrfs
z następującą linią w /etc/fstab.
LABEL=5TB /mnt/5TB btrfs defaults 0 0
okazuje się, że opcjadefaults
nie pozwala na operację zapisu. Aby go zapisać, Dodaj opcję rw
.
LABEL=5TB /mnt/5TB btrfs defaults,rw 0 0
następnie odmontuj dysk twardy. Musisz użyć własnego punktu montowania.
sudo umount /mnt/5TB
i zamontować go ponownie.,
sudo mount -a
Porada dotycząca rozwiązywania problemów
Jeśli twój serwer Samba nie działa zgodnie z oczekiwaniami, możesz sprawdzić pliki dziennika w katalogu/var/log/samba/
. Możesz dodać następujący wiersz w sekcji pliku
/etc/samba/smb.conf
, aby zwiększyć poziom dziennika, jeśli chcesz zapisać więcej informacji.
log level = 2
To jest to! Mam nadzieję, że ten tutorial pomógł Ci skonfigurować serwer Samby na Ubuntu. Jak zawsze, jeśli uznałeś ten post za przydatny, zapisz się do naszego bezpłatnego newslettera., Możesz również przeczytać poniższy artykuł, aby udostępnić drukarkę w sieci lokalnej.
- Skonfiguruj serwer wydruku CUPS na Ubuntu (Bonjour, IPP, Samba, AirPrint)