Linux als Client: Unterschied zwischen den Versionen

Aus dem IServ-Wiki
Zur Navigation springen Zur Suche springen
Zeile 39: Zeile 39:
 
</pre>
 
</pre>
 
=== Dokumentation des Pakets ===
 
=== Dokumentation des Pakets ===
 +
Dieser Abschnitt dokumentiert, was das Paket automatisiert erledigt und ist insbesondere für Administratoren von nicht-unterstützten Systemen hilfreich.
 
==== Abhängigkeiten ====
 
==== Abhängigkeiten ====
 
* winbind: Ein Systemdienst, welcher für die Authentifikation über eine Windows-Domäne nötig ist. Unter Debian-basierten Distributionen sind die folgenden beiden Pakete extra zu installieren.
 
* winbind: Ein Systemdienst, welcher für die Authentifikation über eine Windows-Domäne nötig ist. Unter Debian-basierten Distributionen sind die folgenden beiden Pakete extra zu installieren.

Version vom 27. November 2013, 16:27 Uhr

Information Diese Anleitung wird gerade überarbeitet -- Mirko Augsburger

Ziel ist es einen Client mit Linux vollständig in die IServ Umgebung zu integrieren, so dass sich die IServ-Benutzer dort anmelden können und auf ihre Daten zugreifen können.

Ubuntu/Debian/Mint

Für Ubuntu ab Version 12.04 LTS wird ein Paket entwickelt, dieses läuft aktuell auch auf Ubuntu 10.04 LTS, Debian Stable und Linux Mint. Das Paket selbst ist abhängig von den benötigten Programmen, welche bei graphischer Installation mitinstalliert werden. Diese Programme werden dann automatisch konfiguriert.

Die Testversion kann man aus dem Repository herunterladen, die zugehörige Diskussionsplattform findet sich im Support-Forum. Bei der Installation des Clients werden alle nötigen Angaben abgefragt

Nötige Änderungen auf dem IServ

Für die korrekte Funktion müssen auf dem Server folgende Sektionen an die Datei /etc/samba/smb.conf.local angehängt werden:

[linux_home]
  comment = Echtes Heimatverzeichnis
  path = %H
  writeable = yes

  create mask = 0664
  force create mode = 0664
  directory mask = 02775
  force directory mode = 02775

  hide files = /desktop.ini/$RECYCLE.BIN/
  csc policy = disable

  root preexec = /usr/lib/iserv/samba_exec login %u %I %d
  root postexec = /usr/lib/iserv/samba_exec logout %u %I %d

[linux_print]
  comment = Druckverzeichnis
  path = %H/Print
  writeable = yes

  create mask = 0664
  force create mode = 0664
  directory mask = 02775
  force directory mode = 02775

  hide files = /desktop.ini/$RECYCLE.BIN/
  csc policy = disable

Dokumentation des Pakets

Dieser Abschnitt dokumentiert, was das Paket automatisiert erledigt und ist insbesondere für Administratoren von nicht-unterstützten Systemen hilfreich.

Abhängigkeiten

  • winbind: Ein Systemdienst, welcher für die Authentifikation über eine Windows-Domäne nötig ist. Unter Debian-basierten Distributionen sind die folgenden beiden Pakete extra zu installieren.
    • libpam-winbind | winbind (<= 2:3.5.11): Authetifizierung des Benutzers über PAM
    • libnss-winbind | winbind (<= 2:3.6.5-2): Systemweite Benutzer/Gruppen-Abfrage von winbind-Benutzern
  • samba-common-bin: Liefert nmblookup, ein Tool zur Namensauflösung (vorinstalliert)
  • network-manager: Einfache Netzwerkverwaltung (vorinstalliert)
  • isc-dhcp-client | dhcp-client (vorinstalliert)
  • cifs-utils | smbfs: Programme zum Einbinden des Benutzerverzeichnisses
  • smbclient: Komandozeilenprogramme zum kommunizieren mit dem IServ-Samba-Server (vorinstalliert
  • libpam-mount (>= 0.18): Automatische Einbinden der Benutzerverzeichnisse beim Login
  • cups: Common Unix Printing System, der Druckserver (vorinstalliert)
  • ghostscript: Tools zum Erstellen von PDF-Dokumenten

Nötige Konfigurationsschritte

ISERVDOMAIN muss durch den Domänennamen ersetzt werden,

/etc/samba/smb.conf
[global]
workgroup = ISERVDOMAIN
security = DOMAIN
os level = 0
local master = No
domain master = No
template homedir = /home/%U
template shell = /bin/bash
winbind separator = +
winbind cache time = 10
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
idmap config * : range = 10000-20000
idmap config * : backend = tdb

Bei einem älteren Samba (z.B. Ubuntu 10.04) müssen die letzten beiden Zeilen stattdessen folgendermaßen lauten:

idmap uid = 10000-20000
idmap gid = 10000-20000
/etc/nsswitch.conf

Hier muss an die beiden Zeilen beginnend mit passwd: und group: noch winbind drangehängt werden.

Aus

passwd:  compat
group:   compat

wird also

passwd:  compat winbind
group:   compat winbind
/etc/security/pam_mount.conf.xml

In dieser Datei werden die Verzeichnisse definiert, welche beim Login automatisch eingebunden werden. Hierfür gibt es mehrere Möglichkeiten

  • gleicher Share wie bei Windows (home)
  • eigener Share (linux_home)
  • lokal
  • tmpfs

Bei den ersten beiden Varianten läuft einige Software nicht besonders gut oder gar nicht (z.B. Firefox, KDE). Der Unterschied hier ist lediglich, ob das Linux-Homeverzeichnis gleich dem Eigene Dateien Verzeichnis von Windows sein soll oder ob es dem Homeverzeichnis auf dem Server entsprechen soll. In letzterem Fall muss, wie oben erläutert, auf dem Server eine Freigabe namens linux_home eingerichtet werden.

Bei der dritten Variante bleiben alle Dateien, welche direkt im Home-Verzeichnis liegen lokal erhalten, werden aber nicht auf den Server synchronisiert. Dadurch bleiben die Konfigurationen von Programmen erhalten, jedoch müssen die Festplatten ausreichend dimensioniert sein. Eventuell lohnt es sich hierbei Quotas zu benutzen.

Die vierte Variante bindet ein temporäres Dateisystem ein, wodurch die Schüler nicht die Festplatte überfüllen können, jedoch gehen bei jedem Log-Out alle Dateien außerhalb von Files und Groups verloren

Die folgenden Konfigurationsschnipsel müssen in der /etc/security/pam_mount.conf.xml direkt nach <!-- Volume definitions --> eingefügt werden.

Gleicher Share wie bei Windows
<volume uid="10000-20000" fstype="cifs" server="iserv" path="home" mountpoint="/home/%(USER)" options="iocharset=utf8,dir_mode=0700"/>
<volume uid="10000-20000" fstype="cifs" server="iserv" path="groups" mountpoint="/home/%(USER)/Groups" options="iocharset=utf8,dir_mode=0700"/>
Eigener Share (linux_home zeigend auf %H)
<volume uid="10000-20000" fstype="cifs" server="iserv" path="linux_home" mountpoint="/home/%(USER)" options="iocharset=utf8,dir_mode=0700"/>
Lokal
<volume uid="10000-20000" fstype="cifs" server="iserv" path="home" mountpoint="/home/%(USER)/Files" options="iocharset=utf8,dir_mode=0700"/>
<volume uid="10000-20000" fstype="cifs" server="iserv" path="groups" mountpoint="/home/%(USER)/Groups" options="iocharset=utf8,dir_mode=0700"/>
tmpfs
<volume uid="10000-20000" fstype="tmpfs" path="none" mountpoint="/home/%(USER)" options="nosuid,nodev,uid=%(USERUID),gid=%(USERGID),mode=700"/>
<volume uid="10000-20000" fstype="cifs" server="iserv" path="home" mountpoint="/home/%(USER)/Files" options="iocharset=utf8,dir_mode=0700"/>
<volume uid="10000-20000" fstype="cifs" server="iserv" path="groups" mountpoint="/home/%(USER)/Groups" options="iocharset=utf8,dir_mode=0700"/>
Drucken

Wenn das drucken möglich sein soll muss bei allen Versionen außer Eigener Share (linux_home zeigend auf %H) noch die folgende Zeile hinzugefügt werden:

<volume uid="10000-20000" fstype="cifs" server="iserv" path="linux_print" mountpoint="/home/%(USER)/Print" options="iocharset=utf8,dir_mode=0700"/>
/etc/rc.local

Da winbind, der für die Authentifizierung zuständige Dämon, manchmal schneller startet, als eine Netzwerkverbindung aufgebaut werden kann, empfiehlt es sich ihn nach dem Bootvorgang neuzustarten. Die einfachste Methode ist, folgende zwei Zeilen an das Ende der Datei /etc/rc.local, jedoch vor exit 0 hinzuzufügen:

(sleep 5 && service winbind restart) &
(sleep 10 && service winbind restart) &
lightdm

Der aktuell in Ubuntu benutzte Desktop-Manager, lightdm, lässt sich mit folgendem Befehl so konfigurieren, dass er u.a. ein Eingabefeld für den Benutzer zeigt, anstatt einer Liste:

root
 /usr/lib/lightdm/lightdm-set-defaults --hide-users=true --show-manual-login=true --allow-guest=false --show-remote-login=false 

Bei älteren Systemen gibt es noch keine Option --show-remote-login, daher muss diese hier weggelassen werden:

root
 /usr/lib/lightdm/lightdm-set-defaults --hide-users=true --show-manual-login=true --allow-guest=false 
CUPS

Fedora 13

Voraussetzung

  • Ein Host mit (frisch installiertem?) Fedora 13 (inkl. einer gewünschten Oberfläche)
  • Benötigte Software-Pakete auf dem Linux-Client installieren:
Information Alle folgenden Terminal-Befehle sind als root auf dem Linux-Client und nicht auf dem IServ auszuführen! Falls für root auf dem Client kein Passwort gesetzt sein sollte, kann mit sudo -i eine root-Login-Shell emuliert werden.
root
yum install samba-winbind samba-winbind-clients authconfig

Client einbinden

  • das Tool authconfig starten, um die Benutzeranmeldung einzurichten:
root
authconfig-tui
  • Jetzt füge ich unter Benutzerinformation und unter Authentifizierung winbind hinzu, wähle "Weiter" und konfiguriere winbind:
    • als Sicherheitsmodell "domain"
    • Domain ist der Name meiner "Windows"-Domäne, wie sie im IServ eingetragen ist
    • Der Domain-Controller ist IServ
    • Wichtig: als Standard-Shell die bin/bash wählen!
    • nun die Arbeitsstation der Domäne hinzufügen:
      • "Domain-Mitglied werden" wählen
      • Benutzername und Passwort eines Domänen-Admins (der also Rechner in die Domäne aufnehmen darf) eingeben[1]
  • Jetzt noch dafür sorgen, dass neue (die sich auf diesem Host erstmals anmeldenden) Benutzer automatisch ein eigenes Home erhalten:
root
authconfig --update  --enablemkhomedir
  • Testen, ob der Client die Benutzer der Domäne kennt, Ergebnis sollte eine (lange) Liste sein:
root
wbinfo -u

Anmelden und Spaß haben

  • Jetzt können sich alle (!) Benutzer der Domäne sowohl an der Shell als auch an der womöglich installierten grafischen Oberfläche anmelden.
  • Ein benötigtes Home-Verzeichnis wird automatisch erstellt.
  • Achtung
    • Benutzername erfolgt in der Form MEINEDOMÄNE\vorname.nachname, also mit Angabe der Domäne!
    • Die GUI zeigt die Domänenbenutzer nicht in der Auswahlliste an, es ist also "Anderer Benutzer" zu wählen.

Screenshots


Zu erledigen:

  • Home des Benutzers automatisch einhängen
  • Quotas hinzufügen



  1. Achtung bei Rechnern mit Windows und Linux parallel: Es lässt sich jeder Rechnername nur einmal der Domäne hinzufügen. Bei einer Parallelinstallation müssen daher (nur!) die Hostnamen der beiden Betriebssysteme unterschiedliche sein!