Hallo zusammen,
Ich komme hier mit einem kleinen anliegen welches mich nun seit mehreren Tagen beschäftigt.
Ausgangssituation hierzu ist folgende.
Ich habe hier ca. 100 Server stehen. Alle Server laufen auf RedHat.
Hierbei müssen immer wieder Praktikanten/Azubis am System angelegt werden.
Aktuell bin ich nun soweit:
Mit cygwin logge ich mich über ein Perl Skript auf einen "Jumpserver" ein und verbinde von dort auf die einzelnen Servern nacheinander. Name & Passwort werden automatisch übergeben.
Daraufhin soll er dann mehrere Befehle zum adden des Users ausführen.
Da wir bei uns im Netzwerk alle einen personalisierten Zugang zum Server haben und root-Zugang nicht möglich ist versetzen wir uns mit dem Befehl "sudo su -" in den root-Modus
Somit sind wir also nach dem Login mit als "User" eingeloggt. nun soll er folgende Befehle ausführen.
sudo su -
cp /etc/sudoers /tmp/sudoers_backup
adduser -c "kommentarkommthier" -p encryptedpassword USERNAME
echo "USERNAME ALL=NOPASSWD:ALL" >> /etc/sudoers
exit
Diese Befehle sind in einer Datei welche auf dem Jumpserver liegen.
Nun soll dieses bzw die Befehle bei der SSH Verbindung zu den einzelnen Servern übergeben werden und die Befehle durchgeführt werden.
Hierbei bin ich jedoch auf das Problem gestoßen dass er zwar zum Server connected und auch noch den Befehl "sudo su -" ausführt jedoch nicht mehr den Rest der Befehle da er eine neue Shell startet und dann in den Timeout läuft oder ich mich mit exit aus dem Root auslogge. Und arbeitet dann die restlichen Befehle wieder als User ab.
Wie kann ich beim SSH zum Server alle 5 Befehle übergeben sodass auch alle 5 ausgeführt werden und automatisch weiter im root ausgeführt werden.
User anlegen auf mehreren Systemen
Re: User anlegen auf mehreren Systemen
Sollte sich in etwa so lösen lassen:
Code: Select all
ssh user@server "( sudo su - ; cp /etc/sudoers /tmp/sudoers_backup ; adduser -c "kommentarkommthier" -p encryptedpassword USERNAME ; echo "USERNAME ALL=NOPASSWD:ALL" >> /etc/sudoers ; exit )"PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: User anlegen auf mehreren Systemen
Hallo,
so das hab ich schon so probiert.
Problem hierbei ist dass er nach dem Befehl sudo su - automatisch eine neue shell startet.
somit würde der rest der Befehle erst ausgeführt werden wenn ein exit kommt und somit wieder in die shell des "users" gewechselt wird
so das hab ich schon so probiert.
Problem hierbei ist dass er nach dem Befehl sudo su - automatisch eine neue shell startet.
somit würde der rest der Befehle erst ausgeführt werden wenn ein exit kommt und somit wieder in die shell des "users" gewechselt wird
Re: User anlegen auf mehreren Systemen
Funktioniert es so?
Quotes und Klammern beachten.
Code: Select all
ssh user@server "( sudo su - -c ( cp -f /etc/sudoers /tmp/sudoers_backup && adduser -c 'kommentarkommthier' -p encryptedpassword USERNAME && echo 'USERNAME ALL=NOPASSWD:ALL' >> /etc/sudoers ) )"PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: User anlegen auf mehreren Systemen
Hallo,
hab nun für einen mich passenden Weg gefunden.
Hab eine Lösung kurz getestet. bekomme folgende Ausgabe
bash: -c: line 1: syntax error near unexpected token `('
bash: -c: line 1: `( sudo su - -c ( cp -f /etc/sudoers /tmp/sudoers_backup && adduser -c 'kommentkommthier' -p encryptedPASSWORD USERNAME && echo 'USERNAME ALL=NOPASSWD:ALL' >> /etc/sudoers ) )'
hab nun für einen mich passenden Weg gefunden.
Hab eine Lösung kurz getestet. bekomme folgende Ausgabe
bash: -c: line 1: syntax error near unexpected token `('
bash: -c: line 1: `( sudo su - -c ( cp -f /etc/sudoers /tmp/sudoers_backup && adduser -c 'kommentkommthier' -p encryptedPASSWORD USERNAME && echo 'USERNAME ALL=NOPASSWD:ALL' >> /etc/sudoers ) )'
Last edited by Orbitus on 2013-05-10 11:03, edited 1 time in total.
Re: User anlegen auf mehreren Systemen
So funktioniert es nun bei mir (FreeBSD):
sudo nutzen meine Systeme nicht, daher kann ich das aktuell nicht mittesten.
Code: Select all
ssh user@server "( su - -c ' echo "Hello world" ; echo "Hello world" ; ' )"PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: User anlegen auf mehreren Systemen
Hallo :)
danke für die schnelle Antwort.
funktioniert nun hier auch.
user@server:/export/home/user > ssh user@server "( sudo su - -c ' echo "Hello world" ; echo "Hello world" ; ' )"
user@server's password:
Hello world
Hello world
danke für die schnelle Antwort.
funktioniert nun hier auch.
user@server:/export/home/user > ssh user@server "( sudo su - -c ' echo "Hello world" ; echo "Hello world" ; ' )"
user@server's password:
Hello world
Hello world
