Benutzer per Skript anlegen

JackLevin

JackLevin

Grünschnabel
Hallo!

Ich bin relativ neu in der Linux/UNIX Welt habe aber bereits durch meine Firma einen Auftrag im Linux Redhat Bereich. Ich soll ein Linux Redhat Enterprise Edition Image für Notebook User anpassen. Die Installation des Images erfolgt über Kickstart!

Dabei habe ich bereits in der grub.conf eine Bootoption mit Netzwerk und ohne Netzwerk installiert. Langer Rede kurzer Sinn. Nun haben die Leute in der Firma einen Netzwerkaccount. Wenn sie das Linux nun daheim booten, haben sie ja kein Netzwerk und können sich nicht anmelden, da hier irgendwie das usr/local nicht lokal ist, sondern ins Netzwerk verweist. Dann können die sich nicht mehr anmelden. Also sollte man ja einen lokalen Benutzer definieren.

Meine Aufgabe: Anlegen eines lokalen Benutzers! Optimal wäre das Anlegen durch ein Skript, bei dem das Passwort beim ersten Login des lokalen Benutzers automatisch geändert werden muss.

Ich habe mich mit dem useradd etwas angelegt es tut aber nicht das was ich will! Ich habe ein Skript geschrieben:

Code:
#!/bin/sh

useradd -d /local -g users -p haus6789 local

Aber wenn ich das Skript in den postinstall_scripts Ordner lege, wird es zwar ausgeführt aber es kommt immer die Fehlermeldung:

Code:
chroot: Permission denied ...

Wenn ich

Code:
useradd -D

eingebe, erhalte ich folgendes:

Code:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

Weiss jemand, wie man das am klügsten anstellt? Oder vielleicht gibt es ein BestPractice Beispiel für das automatische Anlegen von Benutzern mit Passworteingabe des Users. Bin für jede Hilfe offen.

Genial wäre halt, wenn der lokale Benutzer so heisst, wie der Netzwerkaccount. Noch genialer wäre es wenn man am Ende das Netzwerkhome mit dem lokalen home irgendwie synchronisieren könnte...

Div
Gruß
JackLevin
 
Sry, aber:

Häh?

Nun haben die Leute in der Firma einen Netzwerkaccount. Wenn sie das Linux nun daheim booten, haben sie ja kein Netzwerk und können sich nicht anmelden, da hier irgendwie das usr/local nicht lokal ist, sondern ins Netzwerk verweist

Dann können die sich nicht mehr anmelden. Also sollte man ja einen lokalen Benutzer definieren.

Woran anmelden? Im Firmennetzwerk oder am lokalen zuhause?

Ich glaube du verwechselst hier ein paar Sachen.

Beschreib mal genau was die Leute in der Firma mit dem Laptop machen können müssen und was genau der Einsatz der Laptops zuhause sein soll.

Dann sehen wir weiter.
 
Hallo!

Also, wie ich bereits sagte, habe ich ein Image angepasst. Mein Ursprungsimage ist ein Image, das auf die normalen Workstations installiert wird. Bei dem melden sich die User über ihren Netzwerkaccount an.

Bei uns ist es aber so, dass wenn es kein Netzwerk gibt, dann kann man sich nicht einloggen ... weil usr/local nicht local ist, sondern ins Intranet linkt.

Nun soll ein Image für Notebook User her, die in der Firma arbeiten und vielleicht auch daheim. D.h. die sollen sich in der Firma mit dem Netzwerkaccount anmelden und daheim halt mit einem anderen Bentzerkonto lokal am Rechner.

Im Grunde soll der Unterschied zwischen "daheim" und "in der Firma" nur darin bestehen, dass der eine sich im Netzwerk anmelden kann und der andere sich auch ohne Netzwerk anmelden kann.
 
Zuletzt bearbeitet:
Mal so nebenbei, warum linkt /usr/local ins intranet?

Außerdem müsstest du ja die Daten, die in /usr/local im Intranet liegen auch für daheim bereitstellen oder?

Leg doch einfach Benutzer an, die ihr Homeverzeichnis in /home haben für daheim.

Beim User, der dann ins Intranet kann legst du einfach eine Verknüpfung auf den Desktop, sodass diese auf die Daten von zuhause zugriff haben. (Benutzerrechte nicht vergessen!)


Für die Angelegenheit für "daheim" und "Firma" zu unterscheiden kann dir Grub auch helfen, gib einfach einen beliebigen Parameter dem Kernel mit (der natürlich noch von keiner anderen Funktion benötigt wird) z.B. kernel-2.6.18 Ort=Firma.
Danach passt du einfach die Scripte so an, dass wenn die Variable auf Firma steht, dass dann z.B. dhcpd gestartet wird und sonst nicht. Wie man diese Variable jetzt nochmal ausliest weiß ich gerade nicht mehr, aber ich weiß, dass es einer von den jungen hier weiß, da dies mir mal gezeigt haben :D.
 
Zuletzt bearbeitet von einem Moderator:
@LinuxUser1988:

Leg doch einfach Benutzer an, die ihr Homeverzeichnis in /home haben für daheim.

Genau das ist meine Frage, wie ich das mit einem Skript in der Postinstall-Phase nach der Kickstart Installation hinbekomme. Wie du in meinem ersten Beitrag siehst, habe ich mich daran bereits versucht, aber es hat noch nicht geklappt, genau da brauche ich eure :hilfe2:
 
Hallo,

also irgendwie scheint mir das etwas verworren. Das ist eine seltsame Netzwerkumgebung, bei der /usr/local auf dem Netz liegt und die Home-Accounts der User beherbergt. Dazu lies bitte mal den Filesystem Hierarchy Standard (FHS-2.3). /usr/local heißt so, weil es LOKAL sein sollte.
<RANT>
Im übrigen ist mir schleierhaft, warum manche Leute überhaupt User-Accounts in /usr unterbringen (noch schlimmer ist /usr/users). /usr enthält die Unix System Ressources und hat rein gar nichts mit Usern zu tun.
</RANT>

So, zur Frage: Wenn Du die User an einem LDAP-Server anmeldest (also am Netz), dann darf ein lokaler User nicht so heißen wie der Netzwerkuser, es sei denn, Du definierst richtige Profile. Wenn Du das nicht machst, wird immer nur der lokale User gefunden. Wie man bei RHES Profile definiert, weiß ich nicht.

Deine useradd-Zeile ist so falsch nicht. Ich würde die Option -m dazunehmen, damit das Homeverzeichnis auch erzeugt wird. Dann würde ich /etc/skel anpassen, dass die user alle Files automatisch kopiert bekommen, die sie brauchen. Dass Passwort mit -p sollte verschlüsselt eingegeben werden und nicht im Klartext:

Code:
useradd -d /home/tester -m -p `mkpasswd -H md5 test` tester

Dann erzwingst Du das Ändern des Passworts.

Code:
passwd -e tester

Lies bitte die Manuals. Dann verstehst Du auch, was Du da machst.

Mit leichtem Kopfschütteln...
 
Danke für den Tipp

@phrenicus:

Das ist eine seltsame Netzwerkumgebung, bei der /usr/local auf dem Netz liegt und die Home-Accounts der User beherbergt. Dazu lies bitte mal den Filesystem Hierarchy Standard (FHS-2.3). /usr/local heißt so, weil es LOKAL sein sollte.

Hhmm, zu meiner Verteidung, ich habe diese Architektur nicht entworfen, denke es steht mir auch nicht zu das ganze hier über den Haufen zu werfen. Bin nur der "Azubi" und relativ neu in der Linux-Welt.

Lies bitte die Manuals. Dann verstehst Du auch, was Du da machst.

Ich lese eigentlich immer die Manuals. Speziell das für useradd habe ich mehrere Male gelesen - nur hat es mich nicht sonderlich weitergebracht, weil es mein Passwort nicht akzeptiert hat. Kann ich ja verstehen, dass sich das Ganze recht verworren anhört. Ist aber halt nicht auf meinem Mist gewachsen. Versuche mich ja nur dadrin zurecht zu finden... 8)

Trotzdem danke für die Unterstützung. Werde deinen Vorschlag ausprobieren und mich dann wieder melden.

-> Sorry nochmal eine Frage: Woher weiss ich welcher String das verschlüsselte Passwort darstellt? Mit mkpasswd kennt mein
System nicht...



Hallo, nochmal: Bei mir kommt die Fehlermeldung:

Code:
chroot: cannot execute /mnt/kickstart/postinstall_scripts/useradd_local.sh: Permission denied

Mein Skript sieht nun folgendermaßen aus:

Code:
#!/bin/sh

chroot /mnt/sysimage
useradd -d /tester -m -p haus6789 tester
passwd -e tester

Funzt noch nicht...
 
Zuletzt bearbeitet:

Ähnliche Themen

Debian squeeze, Webmin, Samba Freigaben

Samba als PDC

Nutzerrechte in Samba 3.2

Newbie hat probleme mit domain

Samba Performance und Connection

Zurück
Oben