Samba – udostępnianie plików w domowej sieci – cz. 2

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

W kolejnej części pokażę w jaki sposób zabezpieczyć udziały samby. Każdy będzie miał swoje hasło, aby skorzystać z udostępnionego katalogu.
Ma to woje wady i zalety, jednak może się bardzo przydać w sieci firmowej lub domowej przy większej ilości użytkowników. Hasła Samby mogą być przesyłane drogą szyfrowaną lub nieszyfrowaną. Opiszę tutaj bezpieczniejszą według mnie metodę szyfrowaną. Przed rozpoczęciem należy pamiętać, że aby dodać usera do Samby musi wcześniej istnieć w systemie (możemy go dodać poprzez useradd z powłoką /bin/false aby uniemożliwić samo logowanie do systemu).A więc zaczynamy.

Na początek należy w znanym już pliku smb.conf (/etc/samba/smb.conf) w sekcji [global] dopisać dwie linijki:

encrypt passwords = yes
smb passwd file = /etc/smbpass

Oraz zmienić wartość parametru security z share na user.

Pierwsza dopisana linijka określa czy hasła mają być szyfrowane czy nie. Druga natomiast określa plik w którym będą zapisywane nazwy użytkowników i ich hasła. Nazwa i lokalizacja pliku może być dowolna.
Następnie w sekcji udostępnionego katalogu (u nas [share]) należy zmienić wartość parametru guest ok na no. Restartujemy Sambę:

sudo /etc/init.d/samba restart

Tym oto sposobem mamy zabezpieczony nasz udostępniony katalog. Trzeba oczywiście jeszcze stworzyć użytkownika Samby, który będzie miał dostęp do owego katalogu:

seba@debian:~$ sudo smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.

Każdy dodany w ten sposób user ma dostęp do naszego udziału smb://adres_serwera_samba/share po podaniu swojego hasła (nie systemowego a sambowego!). Dzięki dodatkowym parametrom możemy uzyskać różny efekt dostępu. Na przykład połączenie dwóch parametrów write list oraz read only może zapewnić wszystkim odczyt ale zapis już tylko wybranym:

[share]
comment = Udostepniony katalog do oczytu
path = /mnt/katalog
read only = yes
write list = user1,user2
guest ok = yes

Dzięki takiemu wpisowi udział share na naszym serwerze może być odczytywany przez wszystkich, ale modyfikowany jedynie przez użytkowników user1 i user2. Zamiast read only = yes można użyć znanego nam już writable = no.

A co jeśli chcemy mieć osobne katalogi dla każdego usera?
Udostępniamy katalogi domowe każdego z nich. Na szczęście plik konfiguracyjny samby ma sprytną sekcje [homes] dzięki której jednym wpisem załatwimy wszystko. Dopisujemy więc na końcu smb.conf:

[homes]
comment = Katalog użytkownika
writable = yes

Należy pamiętać, że jak zwykle użytkownik musi istnieć w systemie i musi być dodany do Samby przez smbpasswd. Do katalogu domowego możemy się dostać przez smb://adres_serwera_samba/nazwa_uzytkownika. System poprosi o podanie nazwy użytkownika i hasła (tego z pliku Samby a nie z systemu!). Pole domena nie jest wymagane, może być wpisane cokolwiek.

Ostatni element dzisiejszego artykułu to grupy. Czasem zachodzi potrzeba ustalenia praw do katalogu dla całej grupy. W tym celu musimy utworzyć w systemie grupę:

groupadd nasza_grupa

a następnie dodać do niej lokalnych użytkowników:

usermod -G nasza_grupa user1
usermod -G nasza_grupa user2

Pamiętając o tym, że, jeśli nie zrobiliśmy tego wcześniej, należy dodać użytkowników do Samby za pomocą smbpasswd.

Teraz możemy utworzyć w pliku smb.conf wpis:

[share2]
comment = kolejny udostepniony katalog
path = /mnt/katalog2
writable = yes
valid users = +nasza_grupa
force group = nasza_grupa

Pamiętając, by nazwy grup w parametrze valid users poprzedzać znakiem + (plus). Oprócz grup można w tym parametrze dopisywać użytkowników, oddzielając ich spacją. Kolejna ważna kwestia to uprawnienia do katalogu na serwerze (nasz /mnt/katalog2): odczyt i zapis dla grupy nasza_grupa. Dzięki takiej konfiguracji każdy z userów grupy może zapisywać do danego katalogu.

Można oczywiście stosować wariacje tych parametrów, pamiętając by się nie wykluczały. Pamiętać należy aby po każdej zmianie konfiguracji należy zrestartować Sambę oraz że każdy użytkownik, którego dopisujemy do smbpasswd musi też istnieć na serwerze udostępniającym. Widać więc, że Samba to dosyć rozbudowane narzędzie udostępniania katalogów w sieci mieszanej (Windows – Linux).

W kolejnym, artykule opiszę kilka ciekawych parametrów i sposób na udostępnianie drukarek.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • Paweł

    Tak „sudo /etc/init.d/samba restart” chyba nie zresetujemy samby.
    A po wpisaniu „sudo smbpasswd -a user1” i wpisaniu hasła nie dodaje mi użytkownika nie mam komunikatu „Added user user1”.
    Za user1 wpisuje nazwę użytkownika który jest w systemie.