Táto časť hovorí o tom, ako nakonfigurovať systém Samba tak, aby na autentifikáciu používal informácie o kontách používateľov, skupín a počítačov z adresára LDAP. Predpoklad je, že už máme funkčnú inštaláciu adresára OpenLDAP a že server je nastavený tak, aby adresár využíval pri autentifikácii. Viac informácií o nastavovaní OpenLDAP nájdeme v častiach “OpenLDAP Server” a “LDAP autentifikácia”. Viac informácií o inštalácii a konfigurácii servera Samba sa nachádza v kapitole Sieť Windows.
Na prepojenie systému Samba s adresárom LDAP sú potrebné tri balíky: samba, samba-doc a smbldap-tools. Nainštalujeme ich zadaním nasledujúceho príkazu:
sudo apt-get install samba samba-doc smbldap-tools
Presnejšie povedané, balík smbldap-tools nepotrebujeme, ale namiesto neho by sme museli použiť iný balík alebo vlastné skripty, aby sme mohli spravovať kontá používateľov, skupín a počítačov.
Aby Samba mohla použiť OpenLDAP ako pozadie pre autentifikáciu, k používateľským objektom v adresári je potrebné pridať ďalšie atribúty. V tejto časti predpokladáme, že chceme systém Samba nastaviť ako tzv. radič domény Windows NT a že chceme podľa toho pridať príslušné objekty a atribúty do adresára LDAP.
samba.schema
, ktorá je súčasťou balíka
samba-doc. Súbor schémy je potrebné rozzipovať a skopírovať do priečinka
/etc/ldap/schema
. Do príkazového riadka teda zadajme:
sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
sudo gzip -d /etc/ldap/schema/samba.schema.gz
schema_convert.conf
alebo iným viacvravnejším názvom a vložíme do neho tieto riadky:
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/samba.schema
slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/cn=samba.ldif
Ak by sme použili iné meno súboru a cestu k priečinku, je potrebné ich zmeniť aj v predchádzajúcom príkaze.
/tmp/cn=samba.ldif
, zmeníme nasledujúce atribúty:
dn: cn=samba,cn=schema,cn=config
...
cn: samba
a odstránime nasledujúce riadky z konca súboru:
structuralObjectClass: olcSchemaConfig
entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95
creatorsName: cn=config
createTimestamp: 20080827045234Z
entryCSN: 20080827045234.341425Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20080827045234Z
![]() |
Hodnoty atribútov sa môžu líšiť, preto si pri mazaní dajte pozor, aby ste zmazali všetky uvedené atribúty. |
---|---|
ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn=samba.ldif
Teraz by sme mali mať vo vetve cn=config záznam dn: cn={X}misc,cn=schema,cn=config, kde "X" poradové číslo sekvenčnej schémy.
samba_indexes.ldif
:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
Pomocou nástroja ldapmodify načítame nové indexy:
ldapmodify -x -D cn=admin,cn=config -W -f samba_indexes.ldif
Ak všetko prebehne dobre, môžeme si nové indexy prezrieť pomocou ldapsearch:
ldapsearch -xLLL -D cn=admin,cn=config -x -b cn=config -W olcDatabase={1}hdb
sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
sudo perl /usr/share/doc/smbldap-tools/configure.pl
Keď odpovieme na všetky otázky, zapíšu sa do súborov /etc/smbldap-tools/smbldap.conf
a /etc/smbldap-tools/smbldap_bind.conf
. Tieto súbory sú generované konfiguračnými skriptami, takže ak sa pomýlime, niekedy je jednoduchšie opraviť nastavenie v súboroch, ako spúšťať skript odznova.
sudo slapcat -l backup.ldif
sudo smbldap-populate
![]() |
LDIF súbor obsahujúci nové objekty systému Samba môžete vytvoriť spustením príkazu sudo smbldap-populate -e samba.ldif. V tomto súbore sa môžete pozrieť na vykonané zmeny a uistiť sa, či je všetko správne. |
---|---|
Náš LDAP adresár teraz obsahuje všetky potrebné informácie na to, aby mohol autentifikovať používateľov systému Samba.
Existuje viacero spôsobov, akými sa dá nakonfigurovať Samba. Viac informácii o najčastejších spôsoboch sa dozvieme v časti Sieť Windows. Ak chceme nastaviť systém Samba tak, aby používal LDAP, otvoríme hlavný konfiguračný súbor systému Samba /etc/samba/smb.conf
zakomentujeme možnosť passdb backend a pridáme nasledujúce riadky:
# passdb backend = tdbsam
# LDAP Settings
passdb backend = ldapsam:ldap://hostname
ldap suffix = dc=nieco,dc=sk
ldap user suffix = ou=Ludia
ldap group suffix = ou=Skupiny
ldap machine suffix = ou=Pocitace
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=nieco,dc=sk
ldap ssl = start tls
ldap passwd sync = yes
...
add machine script = sudo /usr/sbin/smbldap-useradd -t 0 -w "%u"
Aby sa nové nastavenia prejavili, reštartujeme službu samba:
sudo /etc/init.d/samba restart
Teraz Samba potrebuje vedieť, aké je heslo administrátora LDAP. Do príkazového riadka zadáme:
sudo smbpasswd -w tajne
![]() |
Slovo tajne nahraďte heslom LDAP administrátora. |
---|---|
Ak už v adresári LDAP máme vložených používateľov a chceme, aby sa vedeli autentifikovať v systéme Samba, je potrebné vyplniť niekoľko Samba atribútov, ktoré sú zadefinované v súbore samba.schema
. Samba atribúty k existujúcim používateľom pridáme pomocou nástroja smbpasswd, tak že použijeme používateľské meno aktuálneho používateľa:
sudo smbpasswd -a
menopouzivatela
Po spustení nástroja bude potrebné zadať heslo používateľa.
Ak chceme pridať nové kontá používateľov, skupín a počítačov. použijeme nástroje balíčka smbldap-tools. Tu je niekoľko príkladov:
sudo smbldap-useradd -a -P menopouzivatela
Prepínač -a pridá Samba atribúty a prepínač -P spustí nástroj
smbldap-passwd po tom, ako je používateľ vytvorený a umožní nám zadať heslo pre používateľa.
sudo smbldap-userdel menopouzivatela
Nástroj smbldap-userdel má aj prepínač -r. ktorý súčasne odstráni aj domovský priečinok používateľa.
sudo smbldap-groupadd -a menoskupiny
Podobne aj pri smbldap-useradd prepínač -a pridá Samba atribúty.
sudo smbldap-groupmod -m menopouzivatela menoskupiny
Nesmieme zabudnúť menopouzivatela nahradiť menom skutočného používateľa. Prepínač -m umožňuje pridať viacero používateľov oddelených čiarkami naraz.
sudo smbldap-groupmod -x menopouzivatela menoskupiny
sudo smbldap-useradd -t 0 -w menopocitaca
V príkaze nahradíme menopocitaca skutočným menom pracovnej stanice. Prepínač -t 0 vytvorí konto počítača bez zdržania, zatiaľčo prepínač -w hovorí o tom, že sa jedná o účet počítača. Tiež si môžeme všimnúť, že sa v súbore /etc/samba/smb.conf
zmenilo nastavenie
add machine script tak, aby sa použil nástroj
smbldap-useradd.
V balíku smbldap-tools sú aj ďalšie užitočné nástroje. Viac sa o nich dozvieme na man stránkach.