User anlegen auf mehreren Systemen

Bash, Shell, PHP, Python, Perl, CGI
Post Reply
Orbitus
Posts: 4
Joined: 2013-05-09 13:57
 

User anlegen auf mehreren Systemen

Post by Orbitus »

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 avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: User anlegen auf mehreren Systemen

Post by Joe User »

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/JoeUserFreeBSD Remote Installation
Wings for LifeWings 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.
Orbitus
Posts: 4
Joined: 2013-05-09 13:57
 

Re: User anlegen auf mehreren Systemen

Post by Orbitus »

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
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: User anlegen auf mehreren Systemen

Post by Joe User »

Funktioniert es so?

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 ) )"
Quotes und Klammern beachten.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings 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.
Orbitus
Posts: 4
Joined: 2013-05-09 13:57
 

Re: User anlegen auf mehreren Systemen

Post by Orbitus »

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 ) )'
Last edited by Orbitus on 2013-05-10 11:03, edited 1 time in total.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: User anlegen auf mehreren Systemen

Post by Joe User »

So funktioniert es nun bei mir (FreeBSD):

Code: Select all

ssh user@server "( su - -c ' echo "Hello world" ; echo "Hello world" ; ' )"
sudo nutzen meine Systeme nicht, daher kann ich das aktuell nicht mittesten.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings 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.
Orbitus
Posts: 4
Joined: 2013-05-09 13:57
 

Re: User anlegen auf mehreren Systemen

Post by Orbitus »

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
Post Reply