[2] SAMBA – Konfiguracja

28 listopada 2023 Wyłączono przez Adam [zicherka] Nogły

Ustawienia głobalne

Konfigurację Samby rozpoczynamy od stworzenia pliku [smb4.conf] w katalogu [/usr/local/etc/].

root@vfbsd01:~ # mcedit /usr/local/etc/smb4.conf
# stwórz nowy
# ustawienia globalne
[global]

# nazwa grupy roboczej
        workgroup = ZICHERLAB
# Nazwa serwera Samba
        server string = Samba Server at FreeBSD13
# rola serwera (member server, active directory domain controller)
        server role = standalone server
# adresy IP stacji lub adresy sieci, z których można połączyć się z serwerem Samba
# jeśli chcesz zezwolić na połączenia wszystkim wpisz 0.0.0.0
# adresy rozdzielamy spacjami, przecinkami, tabulacjami
        hosts allow = 192.168.100. 127.
# dodaj jeśli chcesz uzyskać dostęp przez starsze urządzenia, routery itp.
        server min protocol = NT1
        client min protocol = NT1
        log file = /var/log/samba/log.%m
        max log size = 50

Konfigurowanie udziałów

Użyte nazwy udziałów i katalogów będą takie same przy opisie konfigurowania uprawnień udziałów w podrozdziale: Uprawnienia udziałów.

Udział publiczny

Poniższy przykład definiuje udział, który umożliwia dowolnemu użytkownikowi przeprowadzić odczyt, zapis, tworzenie i usuwanie plików/katalogow. Jednym słowem mówiąc zawartość tego udostępnionego udziału jest w pełni dostępna. Jedynym ograniczeniem są/mogą być ograniczenia z deklaracji [host allow] w sekcji [global].

root@vfbsd01:~ # mcedit /usr/local/etc/smb4.conf
# dodaj na końcu
[publiczny]
comment =       Udzial publiczny
path =          /usr/home/samba/publiczny
public =        yes
read only =     no

Udział prywatny

Poniższy przykład pokazuje udział, do którego dostęp maja tylko użytkownicy [adam] i [bogdan]. Uprawnienia do tworzonych przez nich plików pozwalają im na odczyt, zapis i wykonanie w tym udziale.

root@vfbsd01:~ # mcedit /usr/local/etc/smb4.conf
# dodaj na końcu
[prywatny]
comment =       Udzial prywatny
path =          /usr/home/sampa/prywatny
valid users =   adam bogdan
public =        no
writable =     yes

Udział tylko do odczytu

W tym przykładzie każdy może odczytać pliki i katalogi w tym udziale bez podawania hasła. Jednak tylko użytkownicy [adam] i [bogdan] – czyli Ci, którzy są wymienieni w dyrektywie [write list] mogą tworzyć, modyfikować oraz kasować pliki, ale tylko tych, którymi są właścicielami.

root@vfbsd01:~ # mcedit /usr/local/etc/smb4.conf
# dodaj na końcu
[tylkodoodczytu]
comment =       Udzial tylko do odczytu
path =          /usr/home/samba/tylkodoodczytu
public =        yes
writelist =     adam bogdan
writable =      yes

Udział katalogów domowych użytkowników

Ten typ udziału umożliwia dostęp do katalogu domowego użytkownika, który ma ścieżkę [/home/nazwa_użytkownika]. Dostęp do tego udziału ma tylko konkretny użytkownik.

root@vfbsd01:~ # mcedit /usr/local/etc/smb4.conf
# dodaj na końcu
[homes]
comment =       Katalog domowy uzytkownika
browseable =    no
writable =      yes

testparam

Po zakończeniu edytowania/modyfikowania [smb4.conf] uruchom prosty program, który przetestuje poprawność struktury pliku konfiguracyjnego Samby.

root@vfbsd01:~ # testparm
Load smb config files from /usr/local/etc/smb4.conf
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions
# naciśnij [Enter]
# Global parameters
[global]
        log file = /var/log/samba/log.%m
        max log size = 50
        server role = standalone server
        server string = Samba Server at FreeBSD13
        workgroup = ZICHERLAB
        idmap config * : backend = tdb
        hosts allow = 192.168.100. 127.

[publiczny]
        comment = Udzial publiczny
        guest ok = Yes
        path = /usr/home/samba/publiczny
        read only = No

[prywatny]
        comment = Udzial prywatny
        path = /usr/home/sampa/prywatny
        read only = No
        valid users = adam bogdan

[tylkodoodczytu]
        comment = Udzial tylko do odczytu
        guest ok = Yes
        path = /usr/home/samba/tylkodoodczytu
        read only = No
        write list = adam bogdan

[homes]
        browseable = No
        comment = Home Directories
        read only = No

Zamiast i/lub oraz użytkowników można dodawać grupy. Wtedy nazwę grupy należy poprzedzić znakiem [@].

Zanim jednak włączymy udostępnianie katalogów musimy je utworzyć.

Uprawnienia udziałów

Nazwy udziałów odpowiadają nazwom udziałów i katalogow użytych w poprzednim podrozdziale: Konfigurowanie udziałów.

Następnie konfigurujemy udziały, które będą udostępniane w sieci. Zalecam najpierw stworzyć udostępniony katalog, nadać mu odpowiednie prawa, później dopiero konfigurować udział w [smb4.conf]. Z mojego doświadczenia pozowli to uniknąć frustracji i kłopotów.

Udział publiczny

Jeśli został udostępniony udział publiczny, to zgodnie z jego nazwą KAŻDY powinien mieć do niego pelny dostęp. Dlatego też należy nadać takiemu katalogowi uprawnienia [777].

root@vfbsd01:~ # mkdir -p /usr/home/samba/publiczny
root@vfbsd01:~ # chmod 777 /usr/home/samba/publiczny/

Udział prywatny

W tym przypadku uprawnienia do odczytu i modyfikacji powinni mieć tylko wyznaczeni użytkownicy, a co za tym idzie tylko [root] i członkowie grupy powinni posiadać do tego katalogu uprawnienia. Naszą grupą będzie grupa o nazwie [smbpriv]. Katalog powinien posiadać więc uprawnienia [770].

root@vfbsd01:~ # mkdir -p /usr/home/samba/prywatny
root@vfbsd01:~ # pw groupadd smbpriv -M adam bogdan
root@vfbsd01:~ # chgrp smbpriv /usr/home/samba/prywatny/
root@vfbsd01:~ # chmod 770 /usr/home/samba/prywatny/

Udział tylko do odczytu

Jeśli ustawiłeś udział pewnego katalogu na tylko do odczytu, to uprawnienia udostępnianego katalogu powinny być ustawione na [775], co zapewni użytkownikowi [root] i pewnej grupie na pełny dostęp do tego katalogu/udziału, zaś pozostałym użytkownikom pozwoli tylko na dostęp do odczytu.

Jako że, dostęp do tego katalogu z pełnymi prawami ma mieć tylko pewna grupa osób, to zostanie dla nich utworzona specjalna grupa, która w naszym przypadku nosi nazwę [smbro]. Członkami tej grupy zostaną użytkownicy [adam] i [bogdan]. Pozostali zaś użytkownicy będą mogli tylko odczytać zawartość katalogu,

root@vfbsd01:~ # mkdir -p /usr/home/samba/tylkodoodczytu
root@vfbsd01:~ # pw groupadd smbro -M adam bogdan
root@vfbsd01:~ # chgrp smbro /usr/home/samba/tylkodoodczytu/
root@vfbsd01:~ # chmod 775 /usr/home/samba/tylkodoodczytu/

Udział katalogów domowych lokalnych użytkowników

W tym przypadku nie ma potrzeby tworzenia katalogów, ponieważ w czasie tworzenia/dodawania lokalnego użytkownika wszystkie katalogi oraz ich uprawnienia zostały dodane przez system.

Dodawanie użytkowników

Należy utworzyć konta lokalne (na komputerze z zainstalowana usługą SMB), wszystkim użytkownikom, którzy mają mieć możliwość dostępu do udziałów Samby. Nazwy tych użytkowników powinny być tożsame z nazwami użytkownikow lokalnych.

Aby zdefiniować nowego użytkownika Samby – w naszym przypadku będzie to lokalny użytkownik [fbsduser] wykonaj:

root@vfbsd01:~ # smbpasswd -a fbsduser
New SMB password: # wpisz hasło
Retype new SMB password: # ponownie wpisz hasło
Added user fbsduser.

Taką samą operację należy wykonać dla wszystkich użytkowników, którzy mają mieć możliwość korzystania z udostępnionych zasobów poprzez Sambę.