Linux Ubuntu - Samba: Różnice pomiędzy wersjami

Z Systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania
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==

Wersja z 09:06, 1 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

Samba-smbd.png

sudo systemctl status nmbd

Samba-nmbd.png

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

Samba-soisk1.png

Samba-soisk2.png

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

Samba-soisk3.png

Samba-soisk4.png

Samba-soisk5.png

Samba-soisk6.png

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

Samba-soisk8.png

Samba-soisk10.png

Samba-soisk11.png

Samba-soisk12.png

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.

  1. Utwórz katalog /zasoby, nadaj pełne uprawnienia do katalogu dla wszystkich użytkowników
  2. 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

Samba-soisk13.png


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