Linux Ubuntu - Samba: Różnice pomiędzy wersjami
(Utworzono nową stronę "__FORCETOC__ ==Czym jest Samba?== Samba to serwer plików i drukarek. Ma implementację protokołów z Windows, czyli SMB i CIFS. Idealnie nadaje się do współdzielen...") |
|||
(Nie pokazano 4 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 14: | Linia 14: | ||
Po instalacji mamy 2 demony (jest jeszcze w ogóle 3 demon winbindd) | Po instalacji mamy 2 demony (jest jeszcze w ogóle 3 demon winbindd) | ||
− | ''' | + | '''SMBD''' jest demonem serwera który dostarcza usług współdzielenia plików i drukarek do klientów Windows. Serwer dostarcza usługi plikowe i drukarkowe do klientów używając protokołu SMB (lub CIFS). |
− | '''NMBD''' jest demonem zapewniającym rozwiązywanie nazw NETBIOS na adresy IP, może być rownież użyty jako serwer WINS (Windows | + | '''NMBD''' jest demonem zapewniającym rozwiązywanie nazw NETBIOS na adresy IP, może być rownież użyty jako serwer WINS (Windows Internet Name Server) |
Sprawdzamy, czy demony działają za pomocą <code>service</code> lub <code>systemctl</code>. Pokażę oba sposoby. | Sprawdzamy, czy demony działają za pomocą <code>service</code> lub <code>systemctl</code>. Pokażę oba sposoby. | ||
Linia 52: | Linia 52: | ||
Znajdziesz tu logi, czyli pliki dzienników zdarzeń dla Samby, np. log.smbd czy log.nmbd. | Znajdziesz tu logi, czyli pliki dzienników zdarzeń dla Samby, np. log.smbd czy log.nmbd. | ||
− | ==Konfiguracja pliku /etc/samba/smb.conf== | + | ==Konfiguracja pliku /etc/samba/smb.conf - przykład 1== |
Trzeba pamiętać, że Samba ma setki opcji konfiguracyjnych. Dokładnie rozpisano to w manualu do tego pliku <code>man smb.conf</code>. | Trzeba pamiętać, że Samba ma setki opcji konfiguracyjnych. Dokładnie rozpisano to w manualu do tego pliku <code>man smb.conf</code>. | ||
Linia 97: | Linia 97: | ||
− | Teraz musimy utworzyć ten katalog i jakieś pliki testowe<code>sudo mkdir pliki && sudo touch /pliki/plik1.txt</code> | + | Teraz musimy utworzyć ten katalog i jakieś pliki testowe<code>sudo mkdir /pliki && sudo touch /pliki/plik1.txt</code> |
==Łączenie się z Windows z udostępnionym udziałem== | ==Łączenie się z Windows z udostępnionym udziałem== | ||
Linia 109: | Linia 109: | ||
==Łączenie się z Ubuntu z udostępnionym udziałem== | ==Łączenie się z Ubuntu z udostępnionym udziałem== | ||
− | [[Plik:samba-soisk3.png]] | + | [[Plik:samba-soisk3.png|800px]] |
[[Plik:samba-soisk4.png]] | [[Plik:samba-soisk4.png]] | ||
Linia 115: | Linia 115: | ||
[[Plik:samba-soisk5.png]] | [[Plik:samba-soisk5.png]] | ||
− | [[Plik:samba-soisk6.png]] | + | [[Plik:samba-soisk6.png|800px]] |
Można też z terminala. | Można też z terminala. | ||
Linia 168: | Linia 168: | ||
</pre> | </pre> | ||
− | == | + | ==Konfiguracja pliku /etc/samba/smb.conf - przykład 2== |
===Dodanie kolejnej sekcji do /etc/samba/smb.conf=== | ===Dodanie kolejnej sekcji do /etc/samba/smb.conf=== | ||
Linia 198: | Linia 198: | ||
Następnie trzeba zmienić właściciela, gdyż katalogi tworzone w katalogu głównym należą do użytkownika root. | Następnie trzeba zmienić właściciela, gdyż katalogi tworzone w katalogu głównym należą do użytkownika root. | ||
− | <code>sudo chown uczen:uczen uczen</code> | + | <code>sudo chown uczen:uczen /uczen</code> |
− | |||
===Dodanie użytkownika Samby=== | ===Dodanie użytkownika Samby=== | ||
Linia 214: | Linia 213: | ||
===Przetestowanie czy działa udostępnianie dla uwierzytelnionego użytkownika=== | ===Przetestowanie czy działa udostępnianie dla uwierzytelnionego użytkownika=== | ||
− | [[Plik:samba-soisk8.png]] | + | [[Plik:samba-soisk8.png|800px]] |
[[Plik:samba-soisk10.png]] | [[Plik:samba-soisk10.png]] | ||
− | [[Plik:samba-soisk11.png]] | + | [[Plik:samba-soisk11.png|800px]] |
[[Plik:samba-soisk12.png]] | [[Plik:samba-soisk12.png]] | ||
Linia 339: | Linia 338: | ||
directory mode = 0777 | directory mode = 0777 | ||
</pre> | </pre> | ||
+ | |||
+ | [[Category:Linux]] |
Aktualna wersja na dzień 08:06, 3 mar 2022
Czym jest Samba?
Samba to serwer plików i drukarek. Ma implementację protokołów z Windows, czyli SMB i CIFS. Idealnie nadaje się do współdzielenia plików między linuksem a Windows. Serwer Samby może służyć jako kontroler domemy Active Directory.
Instalacja
Można to zrobić na kilka sposobów, przykładowo
sudo apt install samba
Sprawdzenie działanie demonów
Po instalacji mamy 2 demony (jest jeszcze w ogóle 3 demon winbindd)
SMBD jest demonem serwera który dostarcza usług współdzielenia plików i drukarek do klientów Windows. Serwer dostarcza usługi plikowe i drukarkowe do klientów używając protokołu SMB (lub CIFS).
NMBD jest demonem zapewniającym rozwiązywanie nazw NETBIOS na adresy IP, może być rownież użyty jako serwer WINS (Windows Internet Name Server)
Sprawdzamy, czy demony działają za pomocą service
lub systemctl
. Pokażę oba sposoby.
sudo service smbd status
sudo systemctl status nmbd
Pliki i foldery Samby
/etc/samba/smb.conf
Podstawowy plik konfiguracyjny. Definiuje się w nim udziały oraz ustawienia globalne samego serwera
/usr/bin/smbpasswd
Jeśli udział ma być uwierzytelniany to musimy dodać użytkownika dla Samby. Użytkownik musi istnieć również w systemie. Ponizej przykład dodania użytkownika uczen.
sudo smbpasswd -a uczen
/usr/share/doc/samba-doc/
Dokumentacja serwera Samby oraz przykładowe pliki konfiguracyjne. Dokumentację trzeba doinstalować sudo apt install samba-doc
/var/lib/samba/
Znajdziesz tu bazy danych używane przez Sambę, w tym użytkowników i haseł używaną przez smbpasswd.
/var/log/samba
Znajdziesz tu logi, czyli pliki dzienników zdarzeń dla Samby, np. log.smbd czy log.nmbd.
Konfiguracja pliku /etc/samba/smb.conf - przykład 1
Trzeba pamiętać, że Samba ma setki opcji konfiguracyjnych. Dokładnie rozpisano to w manualu do tego pliku man smb.conf
.
Dobrą praktyką przed edycją pliku konfiguracyjnego jest zrobienie jego kopii.
sudo cp /etc/samba/smb.conf /etc/samba/smb_kopia.conf
Otwieramy plik, przykładowo sudo nano /etc/samba/smb.conf
Po otwarciu, jak to w linuksie jest cała masa komentarzy i zakomentowanych opcji ułatwiających konfigurowanie tego pliku. Standartową konfigurację zakomentowano znakiem #, a opcje odbiegajace od domyślnej konfiguracji znakiem ;
Zawartość podzielona jest na sekcje.
Sekcja [global]
Zarządza parametrami dla całego serwera Samby i zapewnia domyślne wartości dla innych sekcji.
Sekcja [homes]
Pozwala łączyć się z katalogami domowymi użytkowników bez dodatkowych wpisów w pliku.
Sekcja [printers]
Odpowiada za dostęp do drukarek
Możemy również tworzyć własne sekcje.
[pliki] comment = udostępniony katalog path = /pliki browsable = yes writeable = no guest ok = yes
path - podajemy ścieżkę do katalogu
browsable - ustalamy czy katalog ma być widowczny w sieci
writeable - ustalamy, czy zezwalamy na zapis
guest ok - ustalamy, czy wpuszczamy gości
Teraz musimy utworzyć ten katalog i jakieś pliki testowesudo mkdir /pliki && sudo touch /pliki/plik1.txt
Łączenie się z Windows z udostępnionym udziałem
Możemy przeglądać zawartość jako użytkownik anonimowy, kopiować pliki, nie mamy prawa zapisu w udostepnionym katalogu.
Łączenie się z Ubuntu z udostępnionym udziałem
Można też z terminala.
uczen@uczen-VirtualBox:/$ smbclient -L 192.168.0.65 Enter WORKGROUP\uczen's password: Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers pliki Disk udostępniony katalog IPC$ IPC IPC Service (uczen-VirtualBox server (Samba, Ubuntu)) Brother_DCP_T510W Printer SMB1 disabled -- no workgroup available uczen@uczen-VirtualBox:/$ smbclient '\\192.168.0.65\pliki' Enter WORKGROUP\uczen's password: Try "help" to get a list of possible commands. smb: \> dir . D 0 Thu Feb 24 11:55:11 2022 .. D 0 Thu Feb 24 12:16:46 2022 plik1.txt N 0 Thu Feb 24 11:55:11 2022 plik2.txt N 0 Thu Feb 24 11:55:11 2022 9736500 blocks of size 1024. 1183472 blocks available smb: \>
Jak chcesz poznać więcej poleceń użyj help. Działa to jak ftp z konsoli.
smb: \> help ? allinfo altname archive backup blocksize cancel case_sensitive cd chmod chown close del deltree dir du echo exit get getfacl geteas hardlink help history iosize lcd link lock lowercase ls l mask md mget mkdir more mput newer notify open posix posix_encrypt posix_open posix_mkdir posix_rmdir posix_unlink posix_whoami print prompt put pwd q queue quit readlink rd recurse reget rename reput rm rmdir showacls setea setmode scopy stat symlink tar tarmode timeout translate unlock volume vuid wdel logon listconnect showconnect tcon tdis tid utimes logoff .. ! smb: \>
Konfiguracja pliku /etc/samba/smb.conf - przykład 2
Dodanie kolejnej sekcji do /etc/samba/smb.conf
Dodamy sekcję dla konkretnego użytkownika, tylko on będzie mógł z niego korzystać. Dodamy również zapis w katalogu.
[uczen] comment = katalog udostepniony przez ucznia path = /uczen browsable = yes writeable = yes valid users = uczen
path - podajemy ścieżkę do katalogu
browsable - ustalamy czy katalog ma być widoczny w sieci
writeable - ustalamy, czy zezwalamy na zapis
valid users - kto może się logować, kolejnych użytkowników dodajemy po przecinku, grupy z @ np. @uczen
Dodanie katalogu i ustawienie właściciela
Stworzymy katalog w katalogu głównym.
sudo mkdir uczen
Następnie trzeba zmienić właściciela, gdyż katalogi tworzone w katalogu głównym należą do użytkownika root.
sudo chown uczen:uczen /uczen
Dodanie użytkownika Samby
Dodamy teraz użytkownika Samby i ustawimy hasło.
uczen@uczen-VirtualBox:/$ sudo smbpasswd -a uczen New SMB password: Retype new SMB password: Added user uczen.
Przetestowanie czy działa udostępnianie dla uwierzytelnionego użytkownika
Jak widać, aby dostać się do katalogu musieliśmy użyć konta utworzonego na Sambie i jego hasła. Działa również zapis w katalogu.
Testowanie własnej konfiguracji przy pomocy testparm
Do testowanie konfiguracji służy polecenie testparm
uczen@uczen-VirtualBox:/$ testparm -s Load smb config files from /etc/samba/smb.conf Loaded services file OK. Weak crypto is allowed WARNING: The 'netbios name' is too long (max. 15 chars). Server role: ROLE_STANDALONE # Global parameters [global] log file = /var/log/samba/log.%m logging = file map to guest = Bad User max log size = 1000 obey pam restrictions = Yes pam password change = Yes panic action = /usr/share/samba/panic-action %d passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . passwd program = /usr/bin/passwd %u server role = standalone server server string = %h server (Samba, Ubuntu) unix password sync = Yes usershare allow guests = Yes idmap config * : backend = tdb [printers] browseable = No comment = All Printers create mask = 0700 path = /var/spool/samba printable = Yes [print$] comment = Printer Drivers path = /var/lib/samba/printers [pliki] comment = udostępniony katalog guest ok = Yes path = /pliki [uczen] comment = katalog udostepniony przez ucznia path = /uczen read only = No valid users = uczen
Testowanie za pomocą smbstatus
Polecenie smbstatus
pokazuje aktualne połączenia Samby.
uczen@uczen-VirtualBox:/$ sudo smbstatus Samba version 4.13.17-Ubuntu PID Username Group Machine Protocol Version Encryption Signing ---------------------------------------------------------------------------------------------------------------------------------------- 58788 uczen uczen 192.168.0.46 (ipv4:192.168.0.46:59351) SMB3_11 - partial(AES-128-CMAC) Service pid Machine Connected at Encryption Signing --------------------------------------------------------------------------------------------- uczen 58788 192.168.0.46 czw lut 24 13:52:11 2022 CET - - pliki 58788 192.168.0.46 czw lut 24 14:03:10 2022 CET - - Locked files: Pid User(ID) DenyMode Access R/W Oplock SharePath Name Time -------------------------------------------------------------------------------------------------- 58788 1000 DENY_NONE 0x100081 RDONLY NONE /pliki . Thu Feb 24 14:03:10 2022 58788 1000 DENY_NONE 0x100081 RDONLY NONE /pliki . Thu Feb 24 14:03:09 2022 58788 1000 DENY_NONE 0x100081 RDONLY NONE /pliki . Thu Feb 24 14:03:09 2022
Zadanie z Samby z egzaminu zawodowego z czerwca 2021 roku (zadanie 4)
Część egzaminu dotyczyła Samby, a mianowicie.
- Utwórz katalog /zasoby, nadaj pełne uprawnienia do katalogu dla wszystkich użytkowników
- Za pomocą serwera Samba udostępnij z uprawnieniami do odczytu i zapisu katalog /zasoby wraz z zawartością dla wszystkich użytkowników sieci. Dla ułatwienia dodana była tabela z pomocą do pliku smb.conf
1. Banalna część, nie wymaga komentarza.
sudo mkdir /zasoby sudo chmod 777 /zasoby
2. Trzeba w pliku /etc/samba/smb.conf dodać jedną sekcję. Wg klucza egzaminatora wystarczyło wpisać 4 opcje z podpowiedzianych w tabeli.
Przykładowo mogło to wyglądać tak:
[zasoby] comment = katalog udostepniony dla wszystkich path = /zasoby read only = No writeable = yes guest ok = yes guest only = yes create mode = 0777 directory mode = 0777