Entwicklungsumgebung/Samba: Unterschied zwischen den Versionen
(Anfang) |
|||
(44 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{ | {{EditStatus|1|Kirmse}} | ||
== | == SAMBA == | ||
Das Paket "SAMBA" enthält alle notwendigen Komponenten eines Datei- und Druckservers für Windows-Clientsysteme. | |||
=== Installation === | |||
Die Installation erfolgt mit den Befehlen: | |||
aptitude install samba samba-common smbclient swat | |||
Während der Installation sind 2 Fragen zu beantworten: | |||
:[[Bild:Samba01.png | Eingabe der Domäne]] | |||
:''Abbildung: Eingabe der Domäne'' | |||
Für den delixs-Schulserver geben Sie als Domänenname '''SCHULE''' ein. Benutzen Sie unbedingt große Buchstaben. | |||
:[[Bild:Samba02.png | WINS-Einstellungen]] | |||
:''Abbildung: WINS-Einstellungen'' | |||
Lassen Sie die Einstellung "NEIN" stehen und fahren mit der Installation fort. | |||
== SAMBA - LDAP Support == | |||
Zuerst erfolgt die Installation mit dem Befehl: | |||
aptitude install libpam-smbpass smbldap-tools smbfs smb-nat samba-doc | |||
------------- | |||
Für den SAMBA - LDAP-Zugriff benötigt "slapd" die Samba Schemata. Die Vorlage nehmen Sie direkt aus dem SAMBA-Paket "samba-doc", weil es dort am aktuellsten in Bezug auf SAMBA ist. | |||
Geben Sie folgende Befehle ein: | |||
cd /usr/share/doc/samba-doc/examples/LDAP | |||
gunzip samba.schema.gz | |||
cp samba.schema /etc/ldap/schema/ | |||
Nun fügen Sie folgende Zeile in '''[[Entwicklungsumgebung/Dateiliste/slapd.conf|/etc/ldap/slapd.conf]]''' hinter den anderen "includes"-Zeilen ein: | |||
include /etc/ldap/schema/samba.schema | |||
Zur Nutzung der "smbldap-tools" gehören 2 Dateien, die Sie erst manuell | |||
entpacken und kopieren müssen. | |||
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 | |||
=== Konfiguration der smbldap-Tools === | |||
Ändern Sie folgende Zeilen in '''[[Entwicklungsumgebung/Dateiliste/smbldap_bind.conf|/etc/smbldap-tools/smbldap_bind.conf]]''' ab: | |||
<source highlight="1-4" lang="text"> | |||
slaveDN="cn=admin,dc=delixs-schule,dc=de" | |||
slavePw="schule" | |||
masterDN="cn=admin,dc=delixs-schule,dc=de" | |||
masterPw="schule" | |||
</source> | </source> | ||
Da in dieser Datei die Passworte im Klartext stehen, wird noch eine Beschränkung der Rechte benötigt: | |||
chown root:root /etc/smbldap-tools/smbldap_bind.conf | |||
chmod 600 /etc/smbldap-tools/smbldap_bind.conf | |||
Jetzt lesen Sie die "localsid" von SAMBA aus und tragen diese in die Konfiguration ein. Zuvor sichern Sie aber unbedingt die vorhandene Konfiguration: | |||
cp /etc/smbldap-tools/smbldap.conf /etc/smbldap-tools/smbldap.conf.orig | |||
net getlocalsid >> /etc/smbldap-tools/smbldap.conf | |||
<source lang="text"> | Mit diesem Befehl haben Sie eine neue letzte Zeile an die bisherige Datei angefügt, die jetzt noch innerhalb der Datei verschoben werden muss. Ändern Sie diese und die folgenden Zeilen in '''[[Entwicklungsumgebung/Dateiliste/smbldap.conf|/etc/smbldap-tools/smbldap.conf]]''' ab: | ||
<source highlight="1-74" lang="text"> | |||
# bisherige Zeile auskommentieren | |||
# SID="S-1-5-21-3733721172-1526293526-4229837797" | |||
# letzte Zeile vom Dateiende hier her verschieben | |||
# SID for Domain ALIX is: S-1-5-21-1217022432-528198597-2225102744 | |||
# und daraus die neue Zeile generieren | |||
SID="S-1-5-21-1217022432-528198597-2225102744" | |||
# | |||
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" | |||
</source> | </source> | ||
Abschließend starten Sie noch "slapd" neu: | |||
/etc/init.d/slapd restart | |||
== Konfiguration von SAMBA (Teil 1 - Grundkonfiguration) == | |||
=== Ziel === | |||
Es sollen für jeden Nutzer die Freigaben "groups", "change" und "software" zur Verfügung stehen. | |||
Außerdem sollen die Webseiten des Intranets komfortabel gepflegt werden können, dafür wird die Freigabe "intranet" eingerichtet. | |||
Außerdem soll "ausgewählten" Lehrern der lesende Zugriff auf die Homeverzeichnisse der Schüler klassenweise (classes) gewährt werden können. Dafür wird die Freigabe "fachl" eingerichtet. Diese "ausgewählten" Lehrer (teacher) müssen für diesen Zugriff später in die Gruppe "fachl" eingetragen werden. | |||
Die Gruppe der Admins soll zudem auch Schreibrecht in den Homeverzeichnissen der Schüler erhalten. Dafür wird die Freigabe "admins" eingerichtet. | |||
Außerdem wird eine Freigabe "netlogon" angelegt. | |||
Die Profile der Nutzer liegen vorerst im Homeverzeichnis. Deshalb ist dafür kein Share notwendig. Eine Umstellung auf ein eigenes Profilverzeichnis, in dem Profile einfacher zu händeln sind, kann recht problemlos später bei der Erstellung von Scripten zum Useranlegen bei Nutzung des LDAPs erfolgen. | |||
=== Zugriff auf die Shares === | |||
Die Shares "change" (Tausch), "software" (Software) und "groups" (Arbeits- und Projektgruppen) werden als Laufwerke t:, p: und r: zur Verfügung gestellt, das Homeverzeichnis als u:, zudem soll beim Abarbeiten der <code>logon.bat</code> die Uhr des Clients gestellt werden. Die Zugriff auf die anderen Shares erfolgt über die Netzwerkumgebung. | |||
=== eigentliche Einrichtung === | |||
Da nach der mir vorliegenden Literatur die UIDs bis 999 reserviert sind, vergebe ich für die Rechneraccounts die UID von 1000 bis 1999, für die User die IDs von 2000 bis 30000. Da die GIDs bis 999 reserviert sind (sein sollen), vergebe ich ab 1000. Die Lehrer (teacher) erhalten die GID 1002 und die Schüler (students) die GID 1001. Die Gruppe fachl die GID 1010. Die Rechner bekommen die GID 1007. | |||
Um die beiden Freigaben "admins" und "fachl" einrichten zu können, wird das Homeverzeichnis "/home" durch hinzufügen der Verzeichnisse analog der Gruppennamen strukturiert. Siehe auch Kapitel: [[Entwicklungsumgebung/LDAP_User|Rollen und Berechtigungen der Nutzer]] | |||
mkdir /home/administration | |||
mkdir /home/all | |||
mkdir /home/archiv | |||
mkdir /home/classes | |||
mkdir /home/exam | |||
mkdir /home/ftp | |||
mkdir /home/groups | |||
mkdir /home/profile | |||
mkdir /home/profile/administration | |||
mkdir /home/profile/exam | |||
mkdir /home/profile/service | |||
mkdir /home/profile/students | |||
mkdir /home/profile/teacher | |||
mkdir /home/profile/wsuser | |||
mkdir /home/service | |||
mkdir /home/software | |||
mkdir /home/students | |||
mkdir /home/teacher | |||
mkdir /home/wsuser | |||
mkdir /home/www | |||
Vor der Erstellung der künftigen Test-Nutzer wurde in der '''[[Entwicklungsumgebung/Dateiliste/adduser.conf|/etc/adduser.conf]]''' folgendes geändert: | |||
<source highlight="1-12" lang="text"> | |||
GROUPHOMES=yes (erzeugt die gewünschte Verzeichnisstruktur) | |||
USERGROUPS=no (sonst hätte jeder User eine eigene Gruppe) | |||
USERS_GID=1002 (entspricht students) | |||
QUOTAUSER="games" (für spaeter) | |||
# Funktinoniert bei mir so nicht. | |||
# NAME_REGEX="^[a-z][-a-z0-9]*\$?$" | |||
# Erlaubt sind Namen in Groß- & Kleinschreibung | |||
# Namen beginnen mit einem Buchstaben und dürfen | |||
# ein Dollar Zeichen am Ende haben. Ansonsten sind | |||
# Buchstaben, Zahlen, Binde- & Unterstrich erlaubt. | |||
# Die Regex ist eine "extend Regex", siehe "grep -E" | |||
NAME_REGEX='^[[:alpha:]][-_[:alnum:]]*\${0,1}$' | |||
</source> | </source> | ||
Jetzt wird noch das Verzeichnis <code>/etc/skel-profile</code> für die Windows-Profile ergänzt: | |||
mkdir /etc/skel-profile | |||
mkdir /etc/skel-profile/Win95 (Windows 9x/Me) | |||
mkdir /etc/skel-profile/WinNT (Windows NT) | |||
mkdir /etc/skel-profile/Win2K (Windows 2000) | |||
mkdir /etc/skel-profile/Win2K3 (Windows 2003) | |||
mkdir /etc/skel-profile/WinXP (Windows XP) | |||
mkdir /etc/skel-profile/WinXP64 (Windows XP 64bit) | |||
mkdir /etc/skel-profile/Vista (Windows Vista) | |||
Danach werden die Verzeichnisse für die logon-Scripts angelegt: | |||
mkdir /etc/samba/scripts | |||
mkdir /etc/samba/exec | |||
/etc/samba/scripts | mkdir /etc/samba/private | ||
/ | |||
/ | |||
Die vorläufige Datei '''[[Entwicklungsumgebung/Dateiliste/smb.conf|/etc/samba/smb.conf]]''' sieht erst einmal so aus: | |||
<source lang="text"> | <source highlight="1-140" lang="text"> | ||
# Global parameters | # Global parameters | ||
[global] | [global] | ||
server string = Schulserver %h | server string = Schulserver %h | ||
workgroup = SCHULE | workgroup = SCHULE | ||
interfaces = lo | interfaces = lo 10.100.0.1/255.255.0.0 | ||
bind interfaces only = Yes | bind interfaces only = Yes | ||
hosts allow = 127. | hosts allow = 127. 10.100. | ||
unix extensions = yes | unix extensions = yes | ||
time server = yes | time server = yes | ||
Zeile 133: | Zeile 250: | ||
logon script = %a.bat | logon script = %a.bat | ||
logon path = \\%L\%U\%a | logon path = \\%L\profile\%G\%U\%a | ||
logon home = \\%L\%U\%a | logon drive = L: | ||
logon home = \\%L\profile\%G\%U\%a | |||
domain logons = yes | domain logons = yes | ||
domain master = yes | domain master = yes | ||
Zeile 140: | Zeile 258: | ||
preferred master = yes | preferred master = yes | ||
passdb backend = ldapsam:ldap://localhost | |||
ldapsam:trusted = yes | |||
ldap passwd sync = yes | |||
pam password change = Yes | |||
ldap suffix = dc=delixs-schule,dc=de | |||
ldap admin dn = cn=admin,dc=delixs-schule,dc=de | |||
ldap group suffix = ou=delixs,ou=groups | |||
ldap user suffix = ou=people,ou=accounts | |||
ldap machine suffix = ou=machines,ou=accounts | |||
passwd program = /usr/sbin/smbldap-passwd %u | |||
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 | |||
unix passwd sync = yes | unix passwd sync = yes | ||
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* | passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* | ||
Zeile 176: | Zeile 309: | ||
wide links = no | wide links = no | ||
[ | [change] | ||
comment = Datenaustausch | comment = Datenaustausch | ||
path = /home/ | path = /home/all | ||
read only = no | |||
public = yes | |||
create mode = 0666 | |||
directory mode = 0777 | |||
wide links = no | |||
[groups] | |||
comment = Gruppen und Projekte | |||
path = /home/groups | |||
read only = no | read only = no | ||
public = yes | public = yes | ||
Zeile 187: | Zeile 329: | ||
[pub] | [pub] | ||
comment = Unterrichtsmaterial | comment = Unterrichtsmaterial | ||
path = /home/ | path = /home/software | ||
write list = adm, root | write list = adm, root | ||
public = yes | public = yes | ||
wide links = yes | wide links = yes | ||
[profile] | |||
comment = Windows Profile | |||
path = /home/profile | |||
public = no | |||
read only = no | |||
browseable = no | |||
create mode = 0755 | |||
directory mode = 0775 | |||
wide links = no | |||
profile acls = yes | |||
preserve case = no | |||
case sensitive = no | |||
[intranet] | [intranet] | ||
Zeile 204: | Zeile 359: | ||
[fachl] | [fachl] | ||
comment = Fachlehrer-Zugang | comment = Fachlehrer-Zugang | ||
path = /home/ | path = /home/classes | ||
valid users = @fachl | valid users = @fachl | ||
guest ok = no | guest ok = no | ||
Zeile 213: | Zeile 368: | ||
[admins] | [admins] | ||
comment = Admin-Freigabe | comment = Admin-Freigabe | ||
path = /home/ | path = /home/students | ||
valid users = @admins | valid users = @admins | ||
guest ok = no | guest ok = no | ||
Zeile 222: | Zeile 377: | ||
</source> | </source> | ||
'''Hinweis:''' Eine detaillierte Beschreibung der einzelnen Einstellungen in der Datei smb.conf finden Sie unter [[Entwicklungsumgebung/Samba/Smb.conf]] | |||
Eine zum Einbinden der Netzlaufwerke vorzusehende Startdatei wird dann so aufgebaut - <code>/etc/samba/scripts/Win95.bat</code>: | |||
<source lang="text"> | <source highlight="1-7" lang="text"> | ||
@echo off | @echo off | ||
net use u: \\ | net use u: \\alix\homes /yes | ||
net use p: \\ | net use p: \\alix\pub /yes | ||
net use | net use r: \\alix\groups /yes | ||
net use | net use t: \\alix\change /yes | ||
net time \\ | net time \\alix /set /yes | ||
</source> | </source> | ||
== Hinweise zu Updates == | |||
* erst mal nur gesammelt: | |||
Das Update auf Samba 3.2 erzeugt automatisch neue tdb Dateien, wegen der | |||
Versionsänderung der tdb-Datenbanksoftware. | |||
Samba | Ein normales Samba-Update sieht so aus: | ||
net getlocalsid >/etc/samba/SID | |||
samba stoppen | |||
update installieren | |||
samba starten | |||
net setlocalsid $(cat /etc/samba/SID) | |||
smbpasswd -w $(cat /etc/ldap.secret) | |||
Alternativ kannst Du probieren, die Installation zu reparieren: | |||
samba stoppen | |||
rm /etc/samba/private/*tdb | |||
samba starten | |||
# Alte SID setzen: | |||
net setlocalsid S-1-5-21-1217022432-528198597-2225102744 | |||
smbpasswd -w $(cat /etc/ldap.secret) | |||
== | == Hinweissammlung == | ||
* Gruppen: http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/NetCommand.html | |||
* Absichern von SWAT mit SSL: http://gertranssmb3.berlios.de/output/SWAT.html#id2598261 | |||
== Weblinks == | |||
* http://www.samba.org/samba/docs/man/Samba-Guide/ | |||
* http://samba-ldap.de/node/46 | |||
* http://samba.org/samba/docs/ | |||
* Deutsche Übersetzung: http://gertranssmb3.berlios.de/ | |||
---- | |||
<div align="right">[[Installation:Entwicklungsumgebung|zurück]] | [[Hauptseite]]</div> | |||
Harry Jede, Hans-Dietrich Kirmse 2009 | |||
[[Kategorie:DebianSqueeze]] | |||
[[ | |||
Aktuelle Version vom 28. März 2011, 19:36 Uhr
Diese Seite ist momentan eine Baustelle im Zustand: 1
-
0
-
1
-
2
-
3
-
4
SAMBA
Das Paket "SAMBA" enthält alle notwendigen Komponenten eines Datei- und Druckservers für Windows-Clientsysteme.
Installation
Die Installation erfolgt mit den Befehlen:
aptitude install samba samba-common smbclient swat
Während der Installation sind 2 Fragen zu beantworten:
Für den delixs-Schulserver geben Sie als Domänenname SCHULE ein. Benutzen Sie unbedingt große Buchstaben.
Lassen Sie die Einstellung "NEIN" stehen und fahren mit der Installation fort.
SAMBA - LDAP Support
Zuerst erfolgt die Installation mit dem Befehl:
aptitude install libpam-smbpass smbldap-tools smbfs smb-nat samba-doc
Für den SAMBA - LDAP-Zugriff benötigt "slapd" die Samba Schemata. Die Vorlage nehmen Sie direkt aus dem SAMBA-Paket "samba-doc", weil es dort am aktuellsten in Bezug auf SAMBA ist.
Geben Sie folgende Befehle ein:
cd /usr/share/doc/samba-doc/examples/LDAP gunzip samba.schema.gz cp samba.schema /etc/ldap/schema/
Nun fügen Sie folgende Zeile in /etc/ldap/slapd.conf hinter den anderen "includes"-Zeilen ein:
include /etc/ldap/schema/samba.schema
Zur Nutzung der "smbldap-tools" gehören 2 Dateien, die Sie erst manuell entpacken und kopieren müssen.
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
Konfiguration der smbldap-Tools
Ändern Sie folgende Zeilen in /etc/smbldap-tools/smbldap_bind.conf ab:
<source highlight="1-4" lang="text">
slaveDN="cn=admin,dc=delixs-schule,dc=de" slavePw="schule" masterDN="cn=admin,dc=delixs-schule,dc=de" masterPw="schule"
</source>
Da in dieser Datei die Passworte im Klartext stehen, wird noch eine Beschränkung der Rechte benötigt:
chown root:root /etc/smbldap-tools/smbldap_bind.conf chmod 600 /etc/smbldap-tools/smbldap_bind.conf
Jetzt lesen Sie die "localsid" von SAMBA aus und tragen diese in die Konfiguration ein. Zuvor sichern Sie aber unbedingt die vorhandene Konfiguration:
cp /etc/smbldap-tools/smbldap.conf /etc/smbldap-tools/smbldap.conf.orig net getlocalsid >> /etc/smbldap-tools/smbldap.conf
Mit diesem Befehl haben Sie eine neue letzte Zeile an die bisherige Datei angefügt, die jetzt noch innerhalb der Datei verschoben werden muss. Ändern Sie diese und die folgenden Zeilen in /etc/smbldap-tools/smbldap.conf ab:
<source highlight="1-74" lang="text">
# bisherige Zeile auskommentieren # SID="S-1-5-21-3733721172-1526293526-4229837797" # letzte Zeile vom Dateiende hier her verschieben # SID for Domain ALIX is: S-1-5-21-1217022432-528198597-2225102744 # und daraus die neue Zeile generieren SID="S-1-5-21-1217022432-528198597-2225102744" # 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"
</source>
Abschließend starten Sie noch "slapd" neu:
/etc/init.d/slapd restart
Konfiguration von SAMBA (Teil 1 - Grundkonfiguration)
Ziel
Es sollen für jeden Nutzer die Freigaben "groups", "change" und "software" zur Verfügung stehen.
Außerdem sollen die Webseiten des Intranets komfortabel gepflegt werden können, dafür wird die Freigabe "intranet" eingerichtet.
Außerdem soll "ausgewählten" Lehrern der lesende Zugriff auf die Homeverzeichnisse der Schüler klassenweise (classes) gewährt werden können. Dafür wird die Freigabe "fachl" eingerichtet. Diese "ausgewählten" Lehrer (teacher) müssen für diesen Zugriff später in die Gruppe "fachl" eingetragen werden.
Die Gruppe der Admins soll zudem auch Schreibrecht in den Homeverzeichnissen der Schüler erhalten. Dafür wird die Freigabe "admins" eingerichtet.
Außerdem wird eine Freigabe "netlogon" angelegt.
Die Profile der Nutzer liegen vorerst im Homeverzeichnis. Deshalb ist dafür kein Share notwendig. Eine Umstellung auf ein eigenes Profilverzeichnis, in dem Profile einfacher zu händeln sind, kann recht problemlos später bei der Erstellung von Scripten zum Useranlegen bei Nutzung des LDAPs erfolgen.
Die Shares "change" (Tausch), "software" (Software) und "groups" (Arbeits- und Projektgruppen) werden als Laufwerke t:, p: und r: zur Verfügung gestellt, das Homeverzeichnis als u:, zudem soll beim Abarbeiten der logon.bat
die Uhr des Clients gestellt werden. Die Zugriff auf die anderen Shares erfolgt über die Netzwerkumgebung.
eigentliche Einrichtung
Da nach der mir vorliegenden Literatur die UIDs bis 999 reserviert sind, vergebe ich für die Rechneraccounts die UID von 1000 bis 1999, für die User die IDs von 2000 bis 30000. Da die GIDs bis 999 reserviert sind (sein sollen), vergebe ich ab 1000. Die Lehrer (teacher) erhalten die GID 1002 und die Schüler (students) die GID 1001. Die Gruppe fachl die GID 1010. Die Rechner bekommen die GID 1007.
Um die beiden Freigaben "admins" und "fachl" einrichten zu können, wird das Homeverzeichnis "/home" durch hinzufügen der Verzeichnisse analog der Gruppennamen strukturiert. Siehe auch Kapitel: Rollen und Berechtigungen der Nutzer
mkdir /home/administration mkdir /home/all mkdir /home/archiv mkdir /home/classes mkdir /home/exam mkdir /home/ftp mkdir /home/groups mkdir /home/profile mkdir /home/profile/administration mkdir /home/profile/exam mkdir /home/profile/service mkdir /home/profile/students mkdir /home/profile/teacher mkdir /home/profile/wsuser mkdir /home/service mkdir /home/software mkdir /home/students mkdir /home/teacher mkdir /home/wsuser mkdir /home/www
Vor der Erstellung der künftigen Test-Nutzer wurde in der /etc/adduser.conf folgendes geändert:
<source highlight="1-12" lang="text">
GROUPHOMES=yes (erzeugt die gewünschte Verzeichnisstruktur) USERGROUPS=no (sonst hätte jeder User eine eigene Gruppe) USERS_GID=1002 (entspricht students) QUOTAUSER="games" (für spaeter) # Funktinoniert bei mir so nicht. # NAME_REGEX="^[a-z][-a-z0-9]*\$?$" # Erlaubt sind Namen in Groß- & Kleinschreibung # Namen beginnen mit einem Buchstaben und dürfen # ein Dollar Zeichen am Ende haben. Ansonsten sind # Buchstaben, Zahlen, Binde- & Unterstrich erlaubt. # Die Regex ist eine "extend Regex", siehe "grep -E" NAME_REGEX='^alpha:[-_[:alnum:]]*\${0,1}$'
</source>
Jetzt wird noch das Verzeichnis /etc/skel-profile
für die Windows-Profile ergänzt:
mkdir /etc/skel-profile mkdir /etc/skel-profile/Win95 (Windows 9x/Me) mkdir /etc/skel-profile/WinNT (Windows NT) mkdir /etc/skel-profile/Win2K (Windows 2000) mkdir /etc/skel-profile/Win2K3 (Windows 2003) mkdir /etc/skel-profile/WinXP (Windows XP) mkdir /etc/skel-profile/WinXP64 (Windows XP 64bit) mkdir /etc/skel-profile/Vista (Windows Vista)
Danach werden die Verzeichnisse für die logon-Scripts angelegt:
mkdir /etc/samba/scripts mkdir /etc/samba/exec mkdir /etc/samba/private
Die vorläufige Datei /etc/samba/smb.conf sieht erst einmal so aus:
<source highlight="1-140" lang="text">
- Global parameters
[global] server string = Schulserver %h workgroup = SCHULE interfaces = lo 10.100.0.1/255.255.0.0 bind interfaces only = Yes hosts allow = 127. 10.100. unix extensions = yes time server = yes socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE case sensitive = no preserve case = yes short preserve case = yes
logon script = %a.bat logon path = \\%L\profile\%G\%U\%a
logon drive = L:
logon home = \\%L\profile\%G\%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
ldap suffix = dc=delixs-schule,dc=de ldap admin dn = cn=admin,dc=delixs-schule,dc=de ldap group suffix = ou=delixs,ou=groups ldap user suffix = ou=people,ou=accounts ldap machine suffix = ou=machines,ou=accounts passwd program = /usr/sbin/smbldap-passwd %u 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
unix passwd sync = yes
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully*
encrypt passwords = 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/*.{*}/
[netlogon] comment = Anmeldeverzeichnis browsable = yes path = /etc/samba/scripts public = yes write list = adm, root share modes = no guest ok = yes locking = no
[homes] comment = Stammverzeichnis browseable = no read only = no inherit permissions = yes create mask = 0755 map hidden = yes map system = yes hide dot files = yes wide links = no
[change] comment = Datenaustausch path = /home/all read only = no public = yes create mode = 0666 directory mode = 0777 wide links = no
[groups] comment = Gruppen und Projekte path = /home/groups read only = no public = yes create mode = 0666 directory mode = 0777 wide links = no
[pub] comment = Unterrichtsmaterial path = /home/software write list = adm, root public = yes wide links = yes
[profile]
comment = Windows Profile path = /home/profile public = no read only = no browseable = no
create mode = 0755 directory mode = 0775 wide links = no
profile acls = yes preserve case = no case sensitive = no
[intranet] comment = Intranet-Seiten path = /home/www valid users = @www guest ok = no writeable = yes create mode = 0664 directory mode = 0775 force group = www
[fachl] comment = Fachlehrer-Zugang path = /home/classes valid users = @fachl guest ok = no writeable = yes create mode = 0777 force group = fachl
[admins] comment = Admin-Freigabe path = /home/students valid users = @admins guest ok = no writeable = yes create mode = 0666 directory mode = 0777 force group = admins </source>
Hinweis: Eine detaillierte Beschreibung der einzelnen Einstellungen in der Datei smb.conf finden Sie unter Entwicklungsumgebung/Samba/Smb.conf
Eine zum Einbinden der Netzlaufwerke vorzusehende Startdatei wird dann so aufgebaut - /etc/samba/scripts/Win95.bat
:
<source highlight="1-7" lang="text"> @echo off net use u: \\alix\homes /yes net use p: \\alix\pub /yes net use r: \\alix\groups /yes net use t: \\alix\change /yes net time \\alix /set /yes </source>
Hinweise zu Updates
- erst mal nur gesammelt:
Das Update auf Samba 3.2 erzeugt automatisch neue tdb Dateien, wegen der Versionsänderung der tdb-Datenbanksoftware.
Ein normales Samba-Update sieht so aus:
net getlocalsid >/etc/samba/SID
samba stoppen update installieren samba starten net setlocalsid $(cat /etc/samba/SID) smbpasswd -w $(cat /etc/ldap.secret)
Alternativ kannst Du probieren, die Installation zu reparieren:
samba stoppen rm /etc/samba/private/*tdb samba starten # Alte SID setzen: net setlocalsid S-1-5-21-1217022432-528198597-2225102744 smbpasswd -w $(cat /etc/ldap.secret)
Hinweissammlung
- Gruppen: http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/NetCommand.html
- Absichern von SWAT mit SSL: http://gertranssmb3.berlios.de/output/SWAT.html#id2598261
Weblinks
- http://www.samba.org/samba/docs/man/Samba-Guide/
- http://samba-ldap.de/node/46
- http://samba.org/samba/docs/
- Deutsche Übersetzung: http://gertranssmb3.berlios.de/
Harry Jede, Hans-Dietrich Kirmse 2009