(You can read this post in English too.)
Első feladatunk az, hogy a telepítéskor feltett kérdések prioritását alacsonyra vesszük:
sudo dpkg-reconfigure debconfEztán telepítjük a Samba csomagot:
sudo apt-get install sambaKözben válaszolgatunk:
- Workgroup/Domain Name: ITTHON2012
- Use password encryption? Yes
- Módosítod az smb.conf-ot, hogy a WINS beállításokat a DHCP-n keresztül érje el? Nem
- Hogyan induljon a Samba? démonok
- Létrehozod a samba jelszóadatbázist (/var/lib/samba/passdb.tdb)? Igen
Importing account for nobody...ok Importing account for a...ok Importing account for helyiuser...ok Importing account for bela...okHa a helyi felhasználókra nincs szükség a Samba-ban, akkor így lehet ezt a pár sort semmissé tenni:
sudo smbpasswd -x helyiuser
A következő nagy feladat az /etc/samba/smb.conf fájl rendberakása:
[global] workgroup = ITTHON2012 server string = %h PDC dns proxy = no log level = 2 log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d security = user encrypt passwords = true passdb backend = ldapsam:ldap://localhost ldap suffix = dc=itthon,dc=cucc ldap admin dn = cn=admin,dc=itthon,dc=cucc ldap machine suffix = ou=Computers ldap user suffix = ou=People ldap group suffix = ou=Groups ldap idmap suffix = ou=Idmap ldap ssl = no ldap passwd sync = yes domain logons = yes add machine script = /usr/sbin/smbldap-useradd -w '%u' add user script = /usr/sbin/smbldap-useradd -m '%u' [netlogon] comment = Network Logon Service path = /export/samba/netlogon guest ok = yes read only = yes [megosztas] comment = megosztas read only = no locking = no path = /tmp guest ok = yes
Természetesen szó nincs arról, hogy ez így teljesen jó. Hiszen a domain logons = yes paraméter vándorló profilokat feltételez, de sehol nincsenek azok a megosztások, ahol a profilok helye van. Nincsenek homeshare-ek sem. Nyomtatás a kanyarban nincs. De egyelőre ez nem is baj. Tapasztalatom szerint ezek a problémák lényegesen kisebbek, mint az a kettő, amit most meg akarunk oldani.
- Az egyik a munkaállomások felvétele a tartományba
- A másik a felhasználók jelszóváltoztatása Windows-ból
sudo testparmAz elején lesz egy ilyen, de le van sajnálva:
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)Elkészítjük a hivatkozott könyvtárat:
sudo mkdir -p /export/samba/netlogonMajd újraindítjuk a Sambát:
sudo service smbd restart sudo service nmbd restartA /var/log/samba/log.smbd állományban szaporodni kezdenek az ilyen bejegyzések: Connection to LDAP server failed for the 4 try! Na akkor állj!
sudo service smbd stop sudo service nmbd stopNa ja. Nem mondtuk meg a Samba-nak, hogy mi az a jelszó, amivel az LDAP-hoz csatlakozhat. Akkor mondjuk meg neki!
sudo smbpasswd -W Setting stored password for "cn=admin,dc=itthon,dc=cucc" in secrets.tdbLátható, hogy a jelszó valójában az smb.conf-ban megadott LDAP-user jelszava lesz, és az is, hogy ez a Samba3 alapértelmezett secrets.tdb fájljába kerül. Mehet tovább a buli:
sudo service smbd start sudo service nmbd startHa elindultak a szervereink, akkor telepítünk egy segédprogramot:
sudo apt-get install smbclientKiadunk egy parancsot (vastaggal szedve), és a jelszónál csak Entert nyomunk. A kimenet jó esetben ehhez hasonló:
smbclient -L localhost Enter a's password: Anonymous login successful Domain=[ITTHON2012] OS=[Unix] Server=[Samba 3.6.3] Sharename Type Comment --------- ---- ------- netlogon Disk Network Logon Service megosztas Disk megosztas IPC$ IPC IPC Service (UBUSERVER) Anonymous login successful Domain=[ITTHON2012] OS=[Unix] Server=[Samba 3.6.3] Server Comment --------- ------- UBUSERVER ubuserver PDC Workgroup Master --------- ------- ITTHON2012 UBUSERVER
A Master megjelenésére lehet, hogy várni kell, mert ha mostanában indult újra a Samba, akkor lehet, hogy még nem nyerte meg a választást a főtallózó szerepéért.
Ezen a ponton kiadunk egy parancsot, aminek mennie kell. Ha hibaüzenetet kapunk, az baj.
sudo net getlocalsid
Na, akkor a Samba szerverprogram rendben, de még túl üres az LDAP-címtár ahhoz, hogy használatba lehessen venni.
Az első dolgunk, hogy csináljuk végig a szerveren azt, ami ennek a cikknek az "Átmegyünk a kliensre" részén van. Az URI lehet ldapi:///, ha az LDAP-szerver és a Samba tartományvbezérlő azonos. A cél az, hogy a getent passwd és a getent group parancs megmutassa az LDAP-ban tárolt felhasználókat, illetve csoportokat. Ha kész van, akkor jöjjünk vissza ide, és folytassuk.
A következő parancsok közül az első az, amelyik telepíti azt az smbldap-tools csomagot, amelyet majd két dologra használunk:
- feltöltjük vele az LDAP-címtárat a Samba használatához szükséges alapbejegyzésekkel
- az smb.conf fájlban add machine script és add user script néven van két bejegyzés, amelyek ennek a csomagnak a fájljaira vonatkoznak
A második parancs a helyére másolja azt a fájlt, amelyik az smbldap-tools és az LDAP közötti kapcsolathoz szükséges felhasználónevet és jelszót tartalmazza. A harmadikkal megoldjuk, hogy a fájlt ne olvashassa akárki.
sudo apt-get install smbldap-tools sudo cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf sudo chmod 600 /etc/smbldap-tools/smbldap_bind.confLássuk, mi kerül az /etc/smbldap-tools/smbldap_bind.conf fájlba:
slaveDN="cn=admin,dc=itthon,dc=cucc" slavePw="titok" masterDN="cn=admin,dc=itthon,dc=cucc" masterPw="titok"Aztán a helyére teszünk egy olyan fájlt is, amelyikben az smbldap-tools nem titkos alapbeállításai vannak (régebben ezt a fájlt egy configure.pl -lel volt szokás létrehozni, sok HOWTO hivatkozik rá. Számomra úgy tűnik, hogy ez kimaradt a Precise Pangolin-ból, és, ha lehetek őszinte, a fenének se hiányzik. A config fájl jól dokumentált, elég az.):
sudo sh -c "zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf"Az smbldap.conf tartalma (mindent állíthatsz ilyenre, az elejére (SID) pedig a sudo net getlocalsid parancs kimenete kerül) (ja, és a TLS/SSL használatához szükséges cafile/clientcert/clientkey fájlokat benne hagytam, de egyelőre se TLS, se SSL nincs):
slaveLDAP="localhost" slavePort="389" masterLDAP="localhost" masterPort="389" ldapTLS="0" ldapSSL="0" verify="require" cafile="/etc/smbldap-tools/ca.pem" clientcert="/etc/smbldap-tools/smbldap-tools.example.com.pem" clientkey="/etc/smbldap-tools/smbldap-tools.example.com.key" suffix="dc=itthon,dc=cucc" usersdn="ou=People,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" scope="sub" # If set to "exop", use LDAPv3 Password Modify (RFC 3062) extended operation. password_hash="SSHA" password_crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" shadowAccount="1" defaultMaxPasswordAge="100" userSmbHome="\\UBUSERVER\%U" userProfile="\\UBUSERVER\profiles\%U" userHomeDrive="S:" userScript="logon.cmd"Na, ha ezzel megvagyunk, akkor lehetne kiadni a sudo smbldap-populate parancsot, ami feltölti az LDAP-ot a Samba használatához szükséges bejegyzésekkel. Ne tedd, mert az első felhasználó az 1000-es UID-értéket kapja majd, és az meg már foglalt: ha minden igaz, épp azzal vagy bejelentkezve (man id). Helyette inkább:
sudo smbldap-populate -u 5000 -g 5000Menet közben látsz ilyet: Use of qw(...) as parentheses is deprecated at /usr/share/perl5/smbldap_tools.pm line 1423, <DATA> line 522. Most ne zavarjon, mindjárt elbánunk vele. Előbb-utóbb ide jutunk:
Please provide a password for the domain root: Use of qw(...) as parentheses is deprecated at /usr/share/perl5/smbldap_tools.pm line 1423, <DATA> line 522. Changing UNIX and samba passwords for root New password:Add meg az LDAP-admin jelszavát (titok). Az smbldap-tools felveszi a root-ot is a samba-felhasználók közé, atyaisten jogkörrel, de mi a büdös életben nem fogjuk használni:)
Na, akkor a qw-s probléma. A fenti fájlban keressük meg a hibásnak jelzett sort, és a
for my $sig_name qw(ALRM INT HUP QUIT TERM TSTP TTIN TTOU) {sor helyett adjuk meg ezt (a két vastag(?) zárójel az új):
for my $sig_name (qw(ALRM INT HUP QUIT TERM TSTP TTIN TTOU)) {
Felvesszük az első samba-felhasználónkat (suser1):
sudo smbldap-useradd -a -m -P suser1
Rögtön kapunk is a pofánkba:
Failed to execute: /usr/sbin/smbldap-passwd.cmd: Nincs ilyen fájl vagy könyvtár at /usr/sbin/smbldap-useradd line 668.
Failed to execute: /usr/sbin/smbldap-passwd.cmd: Nincs ilyen fájl vagy könyvtár at /usr/sbin/smbldap-useradd line 668.
Na, akkor szüntessük meg suser1-et:
sudo smbldap-userdel suser1 sudo rm -r /home/suser1/Hozzuk rendbe a bajt:
sudo ln -s /usr/sbin/smbldap-passwd /usr/sbin/smbldap-passwd.cmdAztán készítsük el ismét suser1-et:
sudo smbldap-useradd -a -m -P suser1
Jelentkezzünk be vele először egy Linux kliensen. Ha password aged-et kapunk, akkor itt a teendő. Ha nincs ilyen baj, mehetünk tovább, csináljunk suser1-ből Samba Domain Admin-t. (Tudom, hogy épp 'Administrator' lesz belőle, de akkor is így jó.)sudo smbldap-groupmod -m 'suser1' 'Administrators'
Ha most belépünk egy Windows-ra (először XP-n szeretem kipróbálni, de Windows 7-en is megy a dolog némi módosítás után), akkor
Irodalom:- suser1-gyel fel tudjuk venni a gépet az ITTHON2012 tartományba,
- majd be tudunk jelentkezni (lesz persze panasz, hogy nincs meg a központi profil, de egyelőre nem érdekel bennünket),
- és tudunk jelszót változtatni.
- ha Sambában (Windows-ban) változtatunk jelszót, akkor arról értesül a Linux is, ugyanis az smb.conf fájl ldap passwd sync = yes beállítása miatt a Samba az LDAP-ban nem csak a sambaNTPassword jellemzőt frissíti, hanem a Linux (Unix) jelszót is az userPassword jellemzőben.
- ha viszont Linux kliensen változtatunk jelszót, mondjuk a passwd paranccsal, akkor az nem megy át a Samba felé: csak az userPassword frissül, a sambaNTPassword nem.
Ezen is segíteni fogunk.
zless /usr/share/doc/smbldap-tools/README.Debian.gz
http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1014660.html
4 megjegyzés:
Nagy köszönet a leírásokért! Ezek alapján sikerült végre összelőnöm az ldap-ot és a samba-t Squeezen, persze ott is volt pár qw-s problémához hasonló buktató, meg pár dolgot (pl nsswitch.conf) máshogy kellett beállítani, de végre működik. Köszönöm!
Sajnos nekem nem sikerült. Egy debian wheezym van és egy windows7 kliensem. Megcsináltam az ldap hitelesítést és a sémafájlok hozzáadását is, de azt írja, hogy "A megadott számítógépfiók nem található. Lépjen kapcsolatba egy rendszergazdával annak ellenőrzésére, hogy a fiók a tartományban van-e. Ha a fiókot eltávolították a tartományból, indítsa újra a számítógépet, és csatlakoztassa újra a tartományhoz"
Valami ötlet ?
A regeditbe is átírtam a 2 értéket, amit windows7ben kell
Létrejön az ou=Computers,dc=domain,dc=hu konténer? Abban létrejön a számítógép nevének megfelelő bejegyzés? Nézz szét az LDAP-fában Apache Directory Studio-val.
sikerült másik leírás alapján, sajnos már nincs meg az a snapshot( mert virtuális gépen csináltam) amely alapján csináltam, szerintem a számítógépet nem vettem fel a sambába így utólag visszaolvasva. Az ldap-ot egy webminnel, a phpldapadmin-nal kezeltem és ott láttam, hogy a Computersnél létrehozta azt a számítógép(nev)et amellyel próbálkoztam belépni.
Megjegyzés küldése