Crmgo Blog

przewodnik po Sambie

przewodnik po Sambie

Instalacja Samba Samba 3.0, w przeciwieństwie do wcześniejszych wersji Samba, umożliwia pracę w sieciach Windows działających w trybie Active Directory (lub trybie natywnym Windows 2000). Jeśli wymagana jest ta funkcjonalność, należy zainstalować pakiet samba3-3.0 zamiast samba-2.2. Active Directory…

przewodnik po Sambie
Instalacja Samby

Samba 3.0, w przeciwieństwie do wcześniejszych wersji, obsługuje pracę w sieciach Windows działających w trybie Active Directory (lub trybie natywnym Windows 2000). Jeśli wymagana jest ta funkcjonalność, należy zainstalować pakiet samba3-3.0 zamiast samba-2.2.

Active Directory wykorzystuje inny schemat nazewnictwa domen, komputerów i użytkowników, oparty na DNS. Załóżmy, że istnieje sieć o nazwie my.firm.com z komputerami host1.my.firm.com, host2.my.firm.com, host3.my.firm.com; wówczas domena Active Directory będzie nazywać się my.firm.com, a użytkownicy Active Directory będą mieli nazwy w formacie user@my.firm.com.

Konfiguracja

/etc/krb5.conf musi zawierać co najmniej następujące wiersze:

[realms]

MY.FIRM.COM = {
kdc = your.kerberos.server
}

gdzie MY.FIRM.COM to nazwa domeny (lub „krainy” w terminologii Kerberos; musi być podana wielkimi literami), a your.kerberos.server to nazwa lub adres IP KDC (Kerberos Domain Controller), odpowiednika PDC (Primary Domain Controller) w domenach Windows NT — na przykład server.my.firm.com lub 192.168.117.11.

Prawidłowość ustawień można sprawdzić, wykonując polecenie (zastąp nazwę użytkownika aktualną, np. administrator@MY.FIRM.COM):

# kinit username@REALM

i upewniając się, że hasło zostało zaakceptowane przez serwer. REALM zawsze podaje się wielkimi literami.

Musisz również upewnić się, że możliwe jest uzyskanie nazwy KDC na podstawie jego adresu IP (tzw. reverse DNS lookup). Nazwa KDC musi albo odpowiadać nazwie NetBIOS komputera (nazwa maszyny w sieci Windows bez podania domeny), albo składać się z nazwy NetBIOS i nazwy domeny. Jeśli nie uda się uzyskać nazwy KDC po adresie, otrzymasz błąd „local error” podczas próby dołączenia do domeny.

Jeśli Twój DNS nie obsługuje reverse lookup lub KDC nie jest zarejestrowany w DNS, możesz określić zgodność adresu IP z nazwą w pliku /etc/hosts.

Edycja pliku /etc/samba/smb.conf

Do pracy w Active Directory plik smb.conf musi zawierać następujące parametry:

[global]

# Задает Kerberos realm, обычно совпадает с именем домена в
# верхнем регистре, например realm = MY.FIRM.COM
realm = <REALM>

# Это обычно часть реалма до первой точки, например
# workgroup = MY
workgroup = <WORKGROUP>

# Тип домена - Active Directory.
security = ADS

# В случае Active Directory пароли всегда шифруются.
encrypt passwords = true

# Обычно этот параметр указывать не обязательно, т.к. Samba сама
# определяет адрес KDC, если в сети есть WINS-сервер и он указан
# в smb.conf
ads server = <your.kerberos.server>

 

Rejestracja komputera w domenie Active Directory

Upewnij się, że Samba nie jest uruchomiona. Jeśli jest uruchomiona, należy ją zatrzymać:

# service smb stop; service winbind stop

 

Aby dołączyć komputer do domeny, wykonaj polecenie:

# net ads join -U administrator

gdzie administrator to nazwa użytkownika domeny uprawnionego do tworzenia nowych kont.

Jeśli nie pojawił się komunikat o błędzie, komputer został pomyślnie zarejestrowany w domenie — w przeciwnym razie sprawdź poprawność ustawień w plikach /etc/samba/smb.conf i /etc/krb5.conf. Upewnij się, że użytkownik podany po -U w net ads join ma odpowiednie uprawnienia do tworzenia nowych kont.

Teraz można uruchomić niezbędne usługi:

# service smb start; service winbind start

 

Weryfikacja poprawnego działania w Active Directory

Do pracy z komputerami zarejestrowanymi w Active Directory nie jest wymagane podawanie nazwy użytkownika i hasła. Spróbuj wykonać polecenie:

$ smbclient -k -L <имя компьютера в домене>

 

Musisz otrzymać listę dostępnych zasobów, przy czym smbclient nie powinien pytać o nazwę użytkownika i hasło.

Aby sprawdzić, czy dostęp do zasobów Twojego komputera jest możliwy z innych maszyn w domenie, możesz spróbować wykonać tę samą komendę:

$ smbclient -k -L <имя вашего компьютера в домене>

i otrzymać listę dostępnych zasobów. Możesz również spróbować otworzyć jakiś zasób na Twojej maszynie z maszyny z systemem Windows należącej do domeny. W każdym razie nazwa użytkownika i hasło nie powinny być pytane.

Niektóre cechy pracy w Active Directory

W przeciwieństwie do domen Windows NT, uwierzytelnianie w Active Directory odbywa się nie za pomocą nazwy i hasła, ale za pomocą biletów protokołu Kerberos. Z tego powodu praca z smbclient może początkowo wydawać się niezwykła.

Po pierwsze, przy wywołaniu smbclient należy podać opcję -k. Po drugie, bilety Kerberos są ważne przez określony czas (zwykle przez dobę, ale zależy to od ustawień serwera). Dlatego trzeba je okresowo odnawiać za pomocą polecenia kinit:

# kinit username@REALM

gdzie username to Twoja nazwa użytkownika w domenie Actiev Directory REALM.

Więc jeśli smbclient nagle przestaje łączyć się z zasobami domenowymi, spróbuj odnowić bilet – najprawdopodobniej problem leży właśnie w tym.

artykuł wzięty stąd
Gdzieś w głębi tej struktury znajduje się katalog share, do którego trzeba udostępnić dostęp różnym użytkownikom (np. user) przez sambę. Przy czym grupy zmieniać nie można, a user nie należy do tej grupy.

Przy tworzeniu katalogów w folderze share muszą mieć one uprawnienia 770, pliki w nich 660 i muszą być również dostępne dla user.

Używamy ACL.

Robimy chmod g+s share ..., aby tworzone pliki i foldery miały grupę project
Robimy setfacl -m u:user:rx dla wszystkich katalogów do share ..., aby user mógł dotrzeć do tego katalogu
Robimy setfacl -m u:user:rwx dla katalogu share i wszystkich jego podkatalogów..., aby użytkownik mógł coś tworzyć w tym katalogu
Robimy setfacl -m u:user:rw dla wszystkich plików w katalogu share

W sambie piszemy

directory mask = 770
create mask = 660
inherit acls = yes
inherit permissions = yes # bez tego poprzednia linia nie działa!!!
map acl inherit = yes
map archive = no
map system = no
map hidden = no

Potem próbujemy utworzyć folder i plik w katalogu share przez sambę z poziomu user.

Otrzymujemy
Folder z uprawnieniami 770 i właścicielem user:project (wszystko jak trzeba)
i Plik z uprawnieniami 670 i właścicielem user:project

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.