Linux jako serwer Windows


4. Dodawanie użytkowników

Linux jako serwer Windows

Tylko nazwa zdradza, że widoczny powyżej komputer to system linuksowy, a nie serwer Windows.

Próba uzyskania tej listy z komputera z systemem operacyjnym Windows z pewnością skończy się jednak niepowodzeniem, ponieważ na serwerze Samba nie ma żadnych kont użytkowników. Należy pamiętać, że każde konto użytkownika serwera Samba wymaga odpowiedniego wpisu w pliku haseł komputera z systemem Linux, czyli /etc/passwd. Aby założyć konto użytkownika testuser, należy wpisać:

useradd -m testuser

smbpasswd -a testuser

Uwaga: narzędzie smbpasswd pyta o hasło do nowo utworzonego konta, ale nie oznacza to, że możesz się zalogować do konsoli komputera linuksowego, posługując się utworzoną nazwą użytkownika i podanym właśnie hasłem. Samba zarządza swoimi kontami we własnym pliku haseł, /etc/samba/smbpasswd, dlatego właśnie tam trzeba założyć hasło, a nie w pliku z uprawnieniami dostępu do samego komputera.

Dzięki temu możesz tworzyć konta tylko na serwerze Samba, nie udostępniając jednocześnie użytkownikom lokalnych danych serwera. Przyznanie użytkownikom Samby dostępu do serwera przez SSH albo umożliwienie im logowania się do konsoli serwera wymagałoby od administratora założenia haseł za pomocą systemowego narzędzia passwd.

To z kolei nasuwa następne pytanie: co stanie się z hasłem konta linuksowego, gdy użytkownik zmieni swoje hasło do serwera Samba? Odpowiedź brzmi: nic. W standardowej konfiguracji ten sam użytkownik będzie operował dwoma hasłami, co może powodować problemy. Programiści Samby pomyśleli jednak o tym i podjęli stosowne kroki. Aby przy zmianie hasła Samby zmienić jednocześnie odpowiednie hasło Linuksa, wystarczą dwa wiersze w części [global] pliku konfiguracyjnego:

unix password sync = yes

passwd program = /usr/bin/passwd %u

Uwaga: ostatni wiersz dotyczy SuSE Linux 9.0. W różnych dystrybucjach narzędzie passwd może znajdować się w innym miejscu. Najprościej sprawdzić to poleceniem which passwd. Dowiesz się, gdzie znajduje się program w twojej dystrybucji.

Jest tu jeszcze mała pułapka: jeżeli myślisz, że za pomocą programu smbpasswd możesz jako administrator ustanawiać jednocześnie hasła dla konsoli Linuksa i serwera Samba, jesteś w błędzie. Program smbpasswd ujednolica automatycznie hasła tylko dla danego użytkownika. Administrator musi nadal ustanawiać oba hasła ręcznie.

5. Konfiguracja udostępniania

Linux jako serwer Windows

Jeżeli nie ustawisz odpowiednio uprawnień użytkowników i grupy w systemie plików Linuksa, zapis danych na dysku sieciowym będzie niemożliwy.

Oddzielne dyski sieciowe dla poszczególnych użytkowników to bardzo praktyczne rozwiązanie. Nadal jednak pozostaje problem wymiany danych między użytkownikami. Ostatecznie każdy z użytkowników ma dostęp tylko do swojego dysku, natomiast nie do sieciowych katalogów innych użytkowników. Potrzebne jest zatem dodatkowe urządzenie sieciowe, do którego dostęp mieliby wszyscy użytkownicy. W tym celu załóż lokalny katalog, na przykład /srv/samba/wspolny (listing 3).

Na zakończenie załaduj plik konfiguracyjny /etc/samba/smb.conf do edytora i dodaj nowy blok:

[wspolny]

path = /srv/samba/wspolny

read only = no

guest ok = yes

guest only = yes

Po ponownym uruchomieniu demona Samby poleceniem /etc/init.d/smb restart nowo udostępniony katalog jest widoczny na monitorach wszystkich klientów. Jednak próba zapisania danych na tym dysku sieciowym kończy się niepowodzeniem.

Listing 3

mkdir -p /srv/samba/wspolny

Nic dziwnego, gdyż przy obecnych ustawieniach zasobu wspolny dzieją się rzeczy następujące: podczas próby zapisu Samba stwierdza, że dostęp może otrzymać również gość (guest ok = yes), a każdy użytkownik powinien być traktowany jako gość (guest only = yes). Domyślne ustawienia konta gościa w SuSE Linux 9.0 to nobody w grupie nogroup. Możesz jednak łatwo sprawdzić poleceniem ls /srv/samba -al, że tylko użytkownik root ma uprawnienia zapisu w nowo założonym katalogu. Zmień zatem właściciela katalogu z root na nobody, a wszyscy użytkownicy w sieci będą mogli zapisywać dane w udostępnionym katalogu (listing 4).

Listing 4

chown nobody /srv/samba/wspolny

Na razie wszystko jest w porządku. Teraz rzeczywiście wszyscy użytkownicy mogą zapisywać dane we wspólnym katalogu, i to bez logowania się na serwerze. W niektórych przypadkach może to być pożądane, ale zwykle trzeba przyznać to prawo tylko wybranym użytkownikom. Aby to osiągnąć, musisz jeszcze raz zmodyfikować blok zasobu wspolny:

[wspolny]

path = srv/samba/wspolny

read only = no

valid users = testuser

force user = nobody

Podając konto testuser za słowem kluczowym valid users zmuszasz serwer Samba do udostępniania zasobu wspolny tylko wskazanym użytkownikom. Gdyby tego wiersza nie było, dostęp mieliby wszyscy użytkownicy znani serwerowi. Niestety, o mały włos nie popadliśmy w kolejne kłopoty - uprawnienia zapisu ma przecież tylko linuksowy użytkownik nobody, a nie użytkownik testuser. Dopiero ostatni wiersz w bloku sprawia, że wszystko jednak działa. Mówi on serwerowi Samba, żeby we wszystkich operacjach na zasobie wspolny używał wewnętrznie użytkownika nobody - niezależnie od tego, pod jaką nazwą zalogowany jest użytkownik wykonujący operację.