Multiuser Howto
Deutsch
massiSOFT Head2 Head3 Atari
06.12.19 04:47:06
Feel the spirit
Language
Deutsch English
Projekte
Doku
Dr. Nibble
Diverse
Multiuser Howto
27.07.05
Perry Drechsel
Nun ich hab's geschafft. Hier ist eine kleine Anleitung, mit der die Vorzüge des MiNT noch besser ausgenutzt werden können.
Sie ist vor allen Dingen für Neueinsteiger gedacht, die MiNT nur deshalb meiden, weil es eine Unix-Umgebung darstellt. Viele befürchten, dass sie damit nicht zurechtkommen. Nun ist es wirklich so, dass einige Veränderungen gegenüber dem TOS und auch DOS, welches wohl die meisten kennen, sehr gravierend erscheinen, aber dem ist nicht so. Unix besteht aus Dateien und Pfaden, wie jedes andere Dateisystem auch, und oft sind für eine sinnvolle Installation und Konfiguration gar nicht so viele Befehle nötig, wie es Anfangs den Anschein hat. Gerade bei MiNT ist es notwendig, erst einmal das Grundgerüst stehen zu haben, damit der Einsatz eines AES erfolgen kann. Das ist oft schon die halbe Miete. Mit dieser HOWTO kann nun der nächste Schritt erfolgen.
Multiuser Howto
27.07.05
Perry Drechsel
Als allererstes wieder etwas Rechtliches. Diese Anleitung dient als Leitfaden, um einem MiNT-System eine Umgebung zu verpassen, die den Einsatz von mehreren Usern mit eigenen Desktop - Einstellungen ermöglicht. Das bedeutet aber auch, dass ich wieder mal keine Garantien für eventuelle Folgeschäden übermehme. Jeder, der sich nach dieser Anleitung richtet nutzt diese auf eigenes Risiko. Eine Berufung auf diese Howto ist somit nicht möglich.
Multiuser Howto
27.07.05
Perry Drechsel
  1. Seit einiger Zeit nutze ich nun meinen TT für Email und Internet. Ja, Ihr lest richtig, Internet. Highwire ist soweit ausgereift, dass es wirklich Spass macht, im Internet herumzusurfen. Allerdings sollte die Sicherheit nie ausser Acht gelassen werden. Der Einsatz von Benutzern (in Zukunft User), die eingeschränkte Benutzerrechte haben, verhindert illegale Zugriffe auf das System, die über einen Browser duchaus erfolgen können. Ausserdem kann jeder User seinen persönlich eingerichteten Desktop haben. Da werden die meisten Einstellungsdaten abgelegt, ohne dass die entsprechenden Programme neu installiert werden. (bei mir betrifft dies Z.B. amail und aftp) Da könnt Ihr auch mal Eure Nachkommenschaft unkontrolliert an den Rechner lassen, ohne aufpassen zu müssen. Müsst nur 'nen User anlegen!!
  2. Nun ist klar, dies hört sich aber ganz nach Linux an!!! Warum nicht gleich Linux nehmen?? Wäre das nicht sinnvoller? Keinesfalls!! Obwohl ich Linux favorisiere, hat MiNT durchaus Seine Vorteile:
    MiNT baut immer noch auf TOS auf!! Was sehr schnell beim Einsatz des AES klar wird. Linux 68k hat dieses nicht. Die grafische Console wird durch einen X-Server gestellt. Dieser hat seine eigenen Regeln, womit der Einsatz aller vom Atari-GEM abhängigen Programme, incl. TOS-Anwendungen, fast unmöglich wird. Ausserdem ist der X-Server auf einem TT alles andere als schnell. Unter Mint kann man die Vorzüge eines Unix-Systemes und des AES verbinden, was uns am Ende wieder die gewohnte Umgebung erleben lässt, sowie die Möglichkeit gibt, die meisten für uns gewohnten Programme, die ohnehin schon da sind, zu nutzen.
Multiuser Howto
27.07.05
Perry Drechsel
Es ist ein laufendes MiNT (am besten EasyMiNT) notwendig. Der Start muss über init erfolgen. Dies wird durch folgende Einträge am Ende der mint.cnf erreicht:
cd u:\
INIT=u:\sbin\init
Nun sollte als erstes das System über eine Console gestartet werden. dazu sehen wir uns die /etc/ttytab an.
Wichtig sind diese Einträge:
# /etc/ttytab
# Prinzipiell läuft auf der console ein normaler getty
#
# Es darf nur einer der Einträge aktiv sein!
#
console	"/usr/sbin/getty console"	vt52	on secure
#console	"/usr/bin/n_aes"	tw52	on secure
#console	"/usr/bin/execgem"	tw52	on secure
#console	"/usr/bin/xaaes"	tw52	on secure
#
Ungefähr so sollte dieser Teil der /etc/ttytab aussehen, damit ein normaler login erfolgen kann.
Desweiteren sollten XaAES und Gemini2 Installiert sein, der Editor QED wäre auch sehr nützlich.
Nun wäre ein Neustart nicht schlecht.
Multiuser Howto
27.07.05
Perry Drechsel
Nach dem Neustart sollte der Bildschirm ungefähr so aussehen:
root@rechnername:~>
für alle nicht-unixer: Ihr befindet Euch in der Console. Dies ist theoretisch mit der MS-DOS Eingabeaufforderung gleichzusetzen, nur wesentlich mächtiger. (Alle Unixer, bitte nicht steinigen!!) Mächtig, weil ein guter Unixer mit dieser Shell eine ganze Menge anstellen kann.
Das bedeutet, hier wird mit Befehlen gearbeitet. Bleiben wir bei der Sicherheit. Dazu sind folgende Befehle notwendig:
  • man - viel besser als help aber leider in englisch
  • ls - listet die Dateien auf --> MS-DOS dir
  • cd - genau wie MS-DOS cd
  • groupadd - erstellt Gruppen ;Wichtig!
  • groupdel - löscht Gruppen
  • useradd - erstellt neuen User ;Wichtig!!
  • userdel - löscht User
  • passwd - stellt die Paßwörter für einzelne User ein ;Wichtig!!
  • chmod - stellt die Zugriffsmodi ein ;Wichtig!!
  • chown - stellt die Eigentümer (change owner) ein ;Wichtig!!
  • chgrp - stellt die Gruppen (change group) ein ;Wichtig!
Es gibt noch eine ganze Menge anderer wichtiger Befehle, aber diese sind für dieses Projekt von geringerer Bedeutung.
Wenn Ihr o.g. Anzeige habt, wird als erstes folgendes eingegeben:
root@rechnername:~> passwd
Nun werdet Ihr aufgefordert, ein von Euch frei ausgewähltes Passwort einzugeben. Dies ist sehr wichtig. Ihr solltet es Euch gut merken, denn der Root ist in einem Unix-System der Super-User, root darf wirklich alles!!! Wenn Ihr Euch angewöhnt habt, als User zu starten, das System abgesichert habt und Euer Root-Passwort vergessen habt, bekommt Ihr keinen Zugriff auf das System, da wird's dann echt haarig.
Nachdem Ihr das Passwort zum zweiten mal bestätigt habt, ist root abgesichert, wenn man das so nennen darf. Abgesichert, weil der Super- User nur noch mit dem Passwort Zugriff hat. Allerdings sollte an dieser Stelle bedacht werden, dass es hier hauptsächlich um das Anlegen von Usern geht, sicherheitsrelevante Massnahmen werden nur am Rande erwähnt. Dies ist ein echtes Kapitel für sich.
Noch etwas zum AES. Für die eine oder andere Massnahme wird es notwendig sein, das AES zu starten. Ich beziehe mich hier auf das XaAES Ver. 0.963, da es Freeware ist. Gerade für den Editor QED ist es erforderlich, ein funktionsfähiges AES am laufen zu haben. Mit dem Aufruf "Laufwerk/xaaespfad/xaaes.tos" (alles kleingeschrieben, sofern es auf einem TOS-Laufwerk liegt) sollte das AES starten. Entweder Ihr landet im Terradesk und versucht damit klar zu kommen, oder Ihr geht aus dem Terradesk wieder raus. In diesem Fall und wenn kein Desk gestartet wurde könnt Ihr unter XaAES im Menüpunkt "Process->launch" Programme starten. Es ist bequem, Gemini oder einen ausgewählten Desk von da aus zu starten, aber auch der Editor lässt sich so starten.
Multiuser Howto
27.07.05
Perry Drechsel
Ein Unix System verwaltet verschiedene User. Dies wird durch verschiedene Massnahmen durchgeführt. Als erstes werden den Dateien erweiterte Attribute verwaltet. Wie sieht das nun genauer aus? Gebt einmal folgende Befehle ein:
cd /bin
ls -l bash
Die Ausgabe sollte ungefähr so aussehen:
				
-rwxr-xr-x     1 root     root         5410 Apr   3  2002 bash
Was ist hier passiert: Ihr habt die Datei bash mit all ihren Attributen anzeigen lassen. Die Attribute werden folgendermassen festgelegt:
  _______________ User- Modus
  |  ____________ Gruppen-Modus
  |  |  _________ Gast-Modus
  |  |  |
  |  |  |       User    Gruppe        Grösse  letzte Änderg. Dateiname
-rwxr-xr-x    1 root    root           5410 Apr   3   2002  bash

Das erste Zeichen steht für den Typ:
d bedeutet Verzeichnis(Directory)
l bedeutet Link
- bedeutet Datei

Attribute: -rwxr-xr-x

r: read der Lesen modus
w: write der Schreibmodus
x: execute der Ausführmodus(Programm, Scriptdatei)

In o.g Fall hat der User, in dem Falle root, die Lese- Schreib- und Ausführrechte, die Gruppe, auch root, Lese- und Ausführrechte, sowie alle anderen im System vorhandenen User die Lese- und Ausführrechte.
Na klar, die bash ist ja auch die shell.

Zusammengefasst:
-erstes Zeichen Typ
zweites bis viertes Zeichen Userrechte
fünftes bis siebentes Zeichen Gruppenrechte
achtes bis zehntes Zeichen Gastrechte.
Die Rechte werden durch Bits gesetzt. Dazu aber später.

Wozu diese Erklärung: Im Unix-Datei-System wird mit Usern und Gruppen gearbeitet. Das bedeutet, wir kommen der Sache schon etwas näher (der User eben). Mit den unter 3. genannten Befehlen können die User- relevanten Einstellungen ganz entscheidend, bis hin zur kompletten Verweigerung verändert werden. Diese Einstellungen sollten als root verändert werden, da es sonst durchaus zu Problemen kommen kann. Aber nicht vergessen, als root sollte man wissen, was man macht!!

Multiuser Howto
27.07.05
Perry Drechsel
Etwas vorweg; Die Befehle, die ich hier vorschlage, können mit den entsprechenden Optionen mehr, wen's interessiert, der kann mit dem Befehl: "man Befehl" wesentlich mehr herausbekommen. 'man' ohne Zusatz erklärt sich erst einmal selbst. Hier werden aber Englischkenntnisse benötigt.

Jetzt sehen wir uns die Datei /etc/group an. Dort sind mehrere Einträge in ungefähr diesem Format aufgelistet:

Gruppe:x:501:
Die Bedeutung ist folgende: Gruppe legt den Gruppennamen fest, die 501 die GruppenID. mehr muss man hier für den Anfang nicht wissen.
(Anm. maanke: Wer mehr wissen möchte kann sich bei MiNT-Net für Dummies informieren)

Wie erreicht man einen solchen Eintrag?
für die korrekte Vorgehensweise ist der Befehl:
groupadd -g (GID) Gruppenname
gedacht. Die GID ist eine 3-stellige Gruppen-ID die möglichst über 500 liegen sollte. Warum, werdet Ihr später erfahren.
Der Befehl "groupadd -g 501 test" hinerlässt den Eintrag:

test:x:501:  in der /etc/group.
Der erste Schritt ist getan.

Nun könnt Ihr einen weiteren User anlegen. Das passiert mit dem Befehl:
useradd -u 300 -g test -d /home/test -s /bin/bash -m test

Was bedeutet das im einzelnen:
useradd - der Befehl
-u 300 - legt die User-ID fest, nicht unter 300
-g test - zur Gruppe test
-d /home/test - Heimatverzeichnis /home/test anlegen Wichtig!
-s /bin/bash - arbeitet mit der bash als Console
-m test - letztendlich der NickName des Users im System

Nun sind alle relevanten Daten für den User angelegt. Mit "password test" unter root wird die Passwortprozedur für User test aufgerufen, womit dann die Unix-Umgebung für den User test komplett wäre.
Wenn Ihr jetzt die Datei /etc/password öffnet sollte ein Eintrag in dieser Art an letzter Stelle stehen.
test:1XYfoPy7pv/c2:300:501::/home/test:/bin/bash
Die Zeichenkette hinter test: ist das verschlüsselte Passwort, es sollte also anders als hier aussehen. Deshalb sollte sie nur für root lesbar sein, um das auslesen durch Fremde zu verhindern.
Die 300 hinter dem 2. Doppelpunkt legt die UserID (UID) fest. Die ID zwischen 300 und 499 sind für die User reserviert, also auch nur in diesem Bereich für User verwenden!
Die 501 hinter der 300: legt die GruppenID (GID) fest, diese sollte immer ab 500 losgehen. Dies ist nur die HauptID (default genannt), ein User kann in mehreren Gruppen Mitglied sein. Dies würde aber vorerst abschweifen, dazu muss man sich später belesen.
Hinter der 501: Zwischen diesen Doppelpunkten können benutzerrelevante Daten eingetragen werden, hierfür ohne Bedeutung.
Danach findet Ihr das Heimatverzeichnis und die shell für den User, ebenfalls durch ein ":" getrennt.
Multiuser Howto
27.07.05
Perry Drechsel
Ein kurzer Hinweis: Eigentlich würde es genügen, die Befehle einzugeben, aber da es hin und wieder zu Pannen kommt, einige Erklärungen, von denen ich selbst gehört habe, oder die mir schon passiert sind. Dazu wird o.g. Wissen benötigt:

Mir selbst ist es schon passiert, dass ich beim Anlegen des Users vom System angemeckert werde. Mit der Meldung unknown GID 100 (obwohl ich diese gar nicht gewählt habe) brüllte mir die Bash einen Fehler entgegen. Was sich aber als Irrtum erwies. Ihr solltet, so wie ich es auch tun mußte', die /etc/password und die /etc/group überprüfen, sind die Einträge korrekt, ist alles in bester Ordnung.

Bevor Ihr nun das Sytem neu startet, solltet Ihr das Heimatverzeichnis überprüfen. Ist es vorhanden (wie in der /etc/password eingetragen), so ist alles in Ordnung, aber ich habe von Fällen gehört, bei denen dies misslungen ist. Dazu folgende Vorgehensweise:
In das Verzeichnis /home wechseln:
cd /home
Heimatordner anlegen:
mkdir /test
neuen Benutzer festlegen: User:
chown (username, in dem Falle test) Verzeichnis (in dem Falle test)
Gruppe:
chgrp test(neue Gruppe) Verzeichnis (in dem Falle Test)
Nun die Benutzerrechte:
chmod 700 test (verzeichnis)
Was ist im Vorhergehenden passiert:
Nach dem Anlegen des Ordners Test gehört dieser mit allen Rechten dem User root. Dem soll ja nicht so sein.
Mit chown (change owner) wird der neue Besitzer festgelegt.
Mit chgrp (change group) wird die neue Gruppe festgelegt.
Mit chmod 700 werden die neuen Benutzerrechte festgelegt. Dabei hat die 700 folgende Bedeutung:
Als erstes geben wir nach dieser Prozedur den Befehl:
ln -l test
ein. Die Ausgabe muss so aussehen:
drwx------     1 test     test         5410 Apr   3  2002 test
Dabei sind die ersten 10 Zeichen die wichtigsten. Das "d" bedeutet Verzeichnis (directory) das "rwx" lesen, schreiben und ausführen für den User. Alle anderen, mit Ausnahme des root haben keinerlei Zugriffsrechte. Die Bindestriche verhindern dies.
Was hat das mit den 700 in chmod zu tun?
Die Zugriffsrechte werden durch einzelene Bits gesetzt. In einer Tabelle sähe das so aus:
r w x
1 1 1
1+2+4  =  7
r steht für die Ziffer 1, w die ziffer 2 und x die Ziffer 4. Addiert ergibt das die Dezimalzahl für den Befehl chmod.

Im einzelnen:
0 keine Rechte ---
1 nur lese-Rechte r--
2 nur schreib-Rechte -w-
3 schreib- und lese-Rechte rw-
4 nur ausführen --x
5 lese- und ausführ-Rechte r-x
6 schreib- und ausführrechte -wx
7 alle Rechte rwx

Und das ganze nun drei mal, einmal für den Nutzer, einmal für die Gruppe (0 für keine Rechte), und einmal für alle anderen(0 für keine Rechte).

Wenn das gelungen ist, kann ein Neustart erfolgen. Von nun an kann sich der User "test" im System einloggen.

Der erste Teil ist geschafft, nun kann es an den grafischen Teil gehen.
Multiuser Howto
27.07.05
Perry Drechsel
Nun seid Ihr das erste mal in der Lage, in abgesicherter Form im Internet herum zu surfen. Allerdings nur mit einem textbasierten Browser, was ja nicht gerade die Erfüllung sein sollte.
Um eines klar zu stellen, es gibt viele verschiedene Arten des AES für MiNT, aber ich berufe mich hier erst einmal ausschliesslich auf Freeware. Ich brauche mir kein FreeMiNT(Sparemint) installieren, um dann einen Haufen Geld für den Rest auszugeben, das muss auch so gehen. Und das geht auch ganz gut!! Ich habe dazu das Beste, was mir unter die Finger gekommen ist (das ist aber Ansichtssache!!) genommen, und was draus gebastelt.
Da wäre als erstes XaAES. Ein Freeware-AES Server, der ziemlich stabil ist und so gut wie alle Bedürfnisse befriedigt. Dieser sollte mit EasyMiNT mit installiert werden. Ich habe hier noch die Version 0.963, solange nicht ein neuer Kernel für EasyMiNT installiert wurde, ist das die richtige Wahl. Dieser sollte nun durch den Eintrag:
shell	Laufwerk:\(geminipfad)\gemini.app
in der XA_EXEC.SCL realisiert werden. Was Laufwerk und Geminipfad bedeuten, muss ich wohl nicht erst erklären. Am besten stand dieser immer vor den letzten run-Einträgen, Beziehungsweise nach dem allerletzten "fi". In der XA_SETUP.SCL könnt Ihr den Pfad für die ACCs eingeben, ich habe leider noch nicht herausgefunden, wie ich auch diesen benutzerspezifisch einstellen kann. Wenn's klappt, gibt es hier einen Nachtrag.
Als nächstes solltet Ihr spätestens jetzt einen Link anlegen (sofern der EasyMiNT-Installer das nicht schon für Euch getan hat), der Euch XaAES aus jeder Position in der bash starten lässt.
Versucht erst einmal "xaaes" oder "xaload". Sollte das funktionieren, seid Ihr schon aus dem Schneider, Ihr könnt das AES immer mit diesem Befehl starten. Wenn nicht, solltet Ihr noch einen Link anlegen. Dazu wechselt Ihr am besten mit "cd" in das Verzeichnis des xaaes. Ihr solltet Euch dran gewöhnen, dass unter der bash die Laufwerke hinter einem Slash stehen, und klein geschrieben werden. Auch der Doppelpunkt hinter den Laufwerken muß verschwinden. Mit dem Befehl:
ln -s xaaes.tos /bin/xaaes(oder was Euch gefällt) 
legt Ihr den Link xaaes(oder was Euch gefällt) in das Verzeichnis /bin . Nach einem Neustart solltet Ihr immer in der Lage sein, das xaaes aus der bash zu starten.
Multiuser Howto
27.07.05
Perry Drechsel
Nun ist es fast geschafft, jetzt soll noch jeder User seinen eigenen Desk kriegen. Vielleicht hält das mancher für Überflüssig, aber: entweder man nimmt einen weniger-komfortablen Desk als Gemini (Terradesk und was es sonst noch alles gibt) oder man kauft sich einen, Jinnee. Beides habe ich für keine so gute Idee gehalten. Aus meiner Sicht ist Jinnee durchaus besser, aber mit wenigen Handgriffen kriege ich Gemini auf fast das gleiche Level. Wenige Handgriffe, da, wenn einem die Icons nicht gefallen, dort was gemacht werden muss, Interface ist da sehr gut, und was noch wichtiger ist, Gemini legt einen eigenen home-Pfad an. Diesen übergibt er dann so an Highwire, was mir bei der Configuration desselben fast graue Haare hat wachsen lassen.
Wie genau stellt man das aber an? Gemini arbeitet viel mit mupfel, dessen Einstellungsdateien aber im Gemini-Verzeichnis im Unterordner User liegen. Diesen könnt Ihr so, wie er ist, in Euer Heimatverzeichnis kopieren. Nur nicht als Unterordner, sondern die Daten, die unter user liegen, kommen nun direkt in Euer home- Verzeichnis. Der Ordner gin wird ebenfalls in das home-Verzeichnis verschoben, wohl gemerkt der "Ordner", nicht nur sein Inhalt.
Genauer beschrieben: Ihr öffnet das Verzeichnis \GEMINI2\USER . Dort markiert Ihr alles und kopiert es in Euer Heimat-Verzeichnis (im o.g. Fall immer /home/test bezeichnet).
Nun ist es Gemini erst einmal möglich, die alten Einstellungen weiterzuführen. Das geht aber erst, wenn folgende Modifikationen durchgeführt wurden:
Im Geminiverzeichnis findet Ihr eine Datei namens PROFILE: Diese wird geöffnet. Der Eintrag:
setenv HOME
wie auch immer dieser aussieht, muss in Zukunft so aussehen:
setenv HOME $HOME
Warum? $HOME ist die Umgebungsvariable, die MiNT an die einzelnen Programme übergibt. In diesem Fall ist das Gemini. Gemini stellt diese Variable nicht automatisch ein. Da der Desk aber in der Lage ist, diese Variable einzulesen, kann er auf das Heimatverzeichnis jedes einzelnen momentanen Users eingestellt werden. Je nachdem, wer gerade angemeldet ist.
Der Eintrag source muss so aussehen:
source $HOME\profile
Warum? Im Gemini-Unterordner USER ist ebenfalls eine Datei PROFILE vorhanden. Diese setzt alle restlichen Systemvariablen für Gemini(mupfel). Der Eintrag muss erfolgen, damit Gemini diese Datei einlesen kann.
Nach diesen Modifikationen wird Gemini alle Einstellungen in Eurem Heimatverzeichnis auslesen, sofern diese vorhanden. Die Speicherungen finden auch da statt. Wenn Ihr nun noch unter dem Menüpunkt ->Extras ->Programmende die Option "Status sichern" markiert, findet Ihr den Desk immer wieder so vor, wie Ihr Ihn verlassen habt. Am Ende habe ich noch festgestellt, dass von diesem Moment an der Papierkorb mit Recovery-Funktion sich nicht mehr öffnen lassen wollte.
Der Eintrag:
setenv TRASHDIR "\HOME\trash\"
hat das Problem behoben. Die Benennung des Verzeichnisses(trash) ist Eure Sache, es sollte nur vohanden sein und von keinem anderen Programm genutzt werden, damit Ihr beim Papierkorb leeren nicht die falschen Dateien grillt.:-( Auch das Verzeichnis mit den Temporären Dateien solltet Ihr mit:
setenv TMPDIR "$HOME\tmp\"
in Euer Heimatverzeichnis legen. Dann kann jeder User seinen eigenen Desk haben, ohne irgend etwas umstellen zu müssen. Wie Ihr auf den Screenshots sehr gut erkennen könnt.

Root Desktop
User Desktop
Der grüne Desk ist vom root, der mit dem Sonnenuntergang vom User. Im gleichen Rechner.

Solltet Ihr Anregungen oder Fragen haben, dann stellt diese doch einfach an mich unter:
perry.drechsel@web.de
Ich werde dann schauen, was ich tun kann.

Top
MS Pee
unknown
All pictures made with
PhotoLine 32
Best viewed with
Your Eyes
Alle hier zum Download angebotenen Programme und Texte sind Freeware.
Änderungen und Veröffentlichungen müssen vorher mit mir abgesprochen werden!