Diskussion:Entwicklungsumgebung/Samba
Hinweis
Die default Einstellung "host msdfs = Yes" verursacht auf jedem Samba-Server ein Speicherproblem, wenn folgendes zutrifft:
- LDAP-Anbindung
- ein MS IIS Server im Netz
Wenn es in Euren Netzen einen IIS gibt, setzt diesen Parameter auf "No" und startet Samba neu :-) . Natürlich nur, wenn Ihr msdfs nicht benutzt; was sehr wahrscheinlich der Fall ist.
Kontrolle mit:
testparm -s -v 2>/dev/null|grep 'host msdfs' host msdfs = Yes
siehe auch dd 16.06.2009
Installation von Samba
eigentliche Installation von Samba
(streng nach Wiki)
1. Pakete einspielen
aptitude install samba samba-common smbclient swat aptitude install libpam-smbpass smbldap-tools smbfs smb-nat samba-doc
---|Samba Server|---
Arbeitsgruppe/Domainname
SCHULE
---|Samba Server|---
soll die smb.conf abgeändert werden, dass per DHCP angebotene WINS-Einstellungen verwendet werden?
nein
2. Sambaschema bereitstellen
cd /usr/share/doc/samba-doc/examples/LDAP gunzip samba.schema.gz cp samba.schema /etc/ldap/schema/
und in die smb.conf einfügen (hiner den anderen include-Zeilen
include /etc/ldap/schema/samba.schema
3. LDAP neu starten
/etc/init.d/slapd restart
4. ldap-tools bereitstellen
wurden ja schon bei Samba installiert und werden nach Anleitung im Wiki bereitgestellt:
zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf
5. Konfiguration der smbldap-Tools:
/etc/smbldap-tools/smbldap_bind.conf (Datei im Paket)
slaveDN="cn=admin,dc=delixs-schule,dc=de" slavePw="geheim" masterDN="cn=admin,dc=delixs-schule,dc=de" masterPw="geheim"
/etc/smbldap-tools/smbldap.conf (Datei im Paket)
mit net getlocalsid >> /etc/smbldap-tools/smbldap.conf dann verschieben z.B. mit den MC
SID="S-1-5-21-3733721172-1526293526-4229837797" sambaDomain="SCHULE" # muss bei uns gleich sein slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" # ich verschluessel nichts ldapTLS="0" verify="none" cafile="" clientcert="" clientkey="" # delixs suffix="dc=delixs-schule,dc=de" usersdn="ou=people,ou=accounts,${suffix}" computersdn="ou=machines,ou=accounts,${suffix}" groupsdn="ou=groups,${suffix}" # das ist noch unklar idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" scope="sub" hash_encrypt="MD5" # der naechste Eintrag soll nicht stoeren crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/students/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="1002" defaultComputerGid="1004" skeletonDir="/etc/skel" # ein leerer Wert wird nicht akzeptiert. also habe ich einen großen Wert genommen defaultMaxPasswordAge="10000" # die naechsten 4 Werte sollen aus der smb.conf genommen werden userSmbHome="" userProfile="" userHomeDrive="" userScript="" mailDomain="delixs-schule.de" # die naechsten Werte waren Vorgabe with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd"
6. wir ändern die UID und GID von sysadm
direkt in der shadow und der passwd UID und GID auf 0 setzen (mit dem mcedit)
7. die Hauptgruppen anlegen
diese legen wir in der /etc/groups an
smbldap-groupadd -g 1000 -a ws-user smbldap-groupadd -g 1001 -a teacher smbldap-groupadd -g 1002 -a students smbldap-groupadd -g 1003 -a exam smbldap-groupadd -g 1004 -a machines
8. Population im LDAP erzeugen
es wurde direkt mit smbldap-populate der LDAP gefüllt. Die Einträge haben gleich die richtige SID (wegen smbldap.conf). Es wurden folgende Einträge im LDAP angelegt. Offensichtlich alles fürs Funktionieren von Samba notwendige Einträge.
ou=Idmap,dc=delixs-schule,dc=de uid=root,ou=people,ou=accounts,dc=delixs-schule,dc=de uid=nobody,ou=people,ou=accounts,dc=delixs-schule,dc=de cn=Domain Admins,ou=groups,dc=delixs-schule,dc=de cn=Domain Users,ou=groups,dc=delixs-schule,dc=de cn=Domain Guests,ou=groups,dc=delixs-schule,dc=de cn=Domain Computers,ou=groups,dc=delixs-schule,dc=de cn=Administrators,ou=groups,dc=delixs-schule,dc=de cn=Account Operators,ou=groups,dc=delixs-schule,dc=de cn=Print Operators,ou=groups,dc=delixs-schule,dc=de cn=Backup Operators,ou=groups,dc=delixs-schule,dc=de cn=Replicators,ou=groups,dc=delixs-schule,dc=de sambaDomainName=SCHULE,dc=delixs-schule,dc=de
9. die Delixs-Gruppen im LDAP anlegen
Dazu verwenden wir das LDIF-File delixsgroups.ldif (Datei im Paket)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! dieses LDIF-File *muss* erst bearbeitet werden !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
und zwar muss die SID von Samba hier eingefügt werden (8x !!!), dazu - die SID anhängen mit
'net getlocalsid >> delixsgroups.ldif'
- z.B. mit dem MC dann mit suchen und ersetzen die alte SID durch die neue SID *überall* eintragen.
dieses bearbeitete LDIF-File in den LDAP einfügen mit
ldapadd -x -D cn=admin,dc=delixs-schule,dc=de -W -f /root/delixsgroups.ldif
10. smb.conf erstellen
die folgende 'smb.conf' habe ich "zusammenkopiert". testparm meckert nicht. die Pfade für die smbldaptools habe ich überprüft, die übernommenen Parameter scheinen mir sinnvoll.
meine 'smb.conf': http://www.arktur.th.schule.de/smb.conf (Datei im Paket)
11. Sambapasswort setzen
als root aufrufen (es muss das LDAP-root-Passwort sein - bei mir 'geheim')
smbpasswd -w geheim
12. Konfiguration neu einlesen
/etc/init.d/samba restart
13. Test
Aufruf von "smbclient -L alix -N" brachte:
Anonymous login successful Domain=[SCHULE] OS=[Unix] Server=[Samba 3.2.5]
Sharename Type Comment --------- ---- ------- netlogon Disk Anmeldeverzeichnis tmp Disk Datenaustausch pub Disk Unterrichtsmaterial intranet Disk Intranet-Seiten fachl Disk Fachlehrer-Zugang admins Disk Admin-Freigabe IPC$ IPC IPC Service (Schulserver alix) Anonymous login successful Domain=[SCHULE] OS=[Unix] Server=[Samba 3.2.5]
Server Comment --------- ------- ALIX Schulserver alix
Workgroup Master --------- ------- SCHULE ALIX
14. User anlegen
smbldap-useradd -a -A 1 -g 1002 -n -c 'Manfred Mustermann,5a' -d /home/students/mmustermann -m mmustermann
Ergänzungen, damit unix und SAMBA-Passworte automatisch synchron bleiben:
cgrep /etc/hosts
127.0.0.1 localhost 10.100.0.1 alix.delixs-schule.de alix ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
cgrep /etc/samba/smb.conf
[global] unix charset = LOCALE server string = Schulserver %h workgroup = SCHULE netbios name = alix domain logons = Yes domain master = Yes local master = yes preferred master =yes interfaces = eth1 127.0.0.1/8 bind interfaces only = Yes name resolve order = wins bcast host security = user auth methods = guest, sam hosts allow = 127. 10. time server = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 case sensitive = no preserve case = yes short preserve case = yes logon script = %a.bat logon path = \\%L\%U\%a logon home = \\%L\%U\%a domain logons = yes domain master = yes os level = 255 preferred master = yes passdb backend = ldapsam:ldap://localhost ldapsam:trusted = yes ldap passwd sync = yes pam password change = Yes encrypt passwords = yes ldap suffix = dc=delixs-schule,dc=de ldap admin dn = cn=admin,dc=delixs-schule,dc=de ldap group suffix = ou=groups ldap user suffix = ou=people,ou=accounts ldap machine suffix = ou=machines,ou=accounts passwd program = /usr/sbin/smbldap-passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* add machine script = /usr/sbin/smbldap-useradd -w "%u" add user script = /usr/sbin/smbldap-useradd -m -a -A 1 "%u" delete user script = /usr/sbin/smbldap-userdel "%u" ldap delete dn = yes dns proxy = no wins support = yes admin users = adm, root, Administrator guest account = nobody mangled names = no log level = 1 veto files = /*.eml/*.nws/riched20.dll/*.{*}/
Hier steht viel zuviel Zeugs drin, aber so passt es erstmal :-)
aptitude install tdb-tools
und nachschauen, ob das geänderte admin Passwort eingetragen ist :-)
tdbdump /var/lib/samba/secrets.tdb
{ key(16) = "SECRETS/SID/ALIX" data(68) = "\01\04\00\00\00\00\00\05\15\00\00\00\A4\04\86}\19\C5\9F\1A\FE\B8\0Eo\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" } { key(18) = "SECRETS/SID/SCHULE" data(68) = "\01\04\00\00\00\00\00\05\15\00\00\00\A4\04\86}\19\C5\9F\1A\FE\B8\0Eo\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" } { key(52) = "SECRETS/LDAP_BIND_PW/cn=admin,dc=delixs-schule,dc=de" data(7) = "schule\00" }
Jetzt "schule" nicht mehr "geheim"
--Harry 2009/03/29 in DD