Shell Script ohne sudo ausführen

OP #7224503
Lesenswert?

Ich habe ein Script, auf mehrere Server verteilt. Dieses Script soll 
extern durch einen anderen Server über ssh ausgeführt werden.

Das script heißt und liegt unter:

/home/draconix/up
1
#!/bin/bash
2
#
3
sudo apt update && sudo apt -y upgrade
4
[[ -f /var/run/reboot-required ]] && echo -ne "\\n\033[1;31m====== $HOSTNAME REBOOT REQUIRED =======\033[0m\\n"
5
[[ -f /var/run/reboot-required.pkgs ]] && cat /var/run/reboot-required.pkgs

in der datei habe ich folgendes eingefügt:

/etc/sudoers
1
 ...snip...
2
draconix ALL=(ALL) NOPASSWD: /home/draconix/up

jedoch verlangt er bei ausführen des scripts immer noch das root 
Password:
1
draconix@Database:~$ /home/draconix/up
2
[sudo] Passwort für draconix:    [STRG+C]
3
sudo: Ein Passwort ist notwendig
4
draconix@Database:~$

woran könnte das liegen? Eigentlich dürfte er doch nicht mehr danach 
fragen oder?

Liebe Grüße
René
Gast #7224645
Lesenswert?

Ich denke, du solltest da eher was mit SSH-Keys machen.

Möglich ist zum Beispiel, dass sich Root nur per SSH-Key einloggen kann, 
dann gehört das Skript auf dem Target halt nicht draconix, sondern Root 
und der kommt ohne sudo aus.
Auf deinen Host musst du einen SSH-agent laufen lassen, welcher denn Key 
an das Target propagiert und der Befehl ist dann halt
1
ssh root@target './up'
 statt
1
ssh draconix@target './up'

Wenn es unbedingt nötig ist, dass draconix das Skript ausführt, könnte 
es hilfreich sein pam_ssh_agent_auth zu installieren und für sudo zu 
konfigurieren, dann kann der Benutzer über ssh ohne Password arbeiten, 
aber der lokale braucht bei sudo eins.

Aber wie du dich auch entscheidest, deine Lösung sollte ssh-keys 
beinhalten, schon weil diese die Sicherheit positiv beeinflussen und 
auch bei mehreren 100 Rechnern ein geschmeidiges Arbeiten garantieren.
OP #7224703
Lesenswert?

Jup, danke dir vielmals. Ich habe mir ein kleines Script geschrieben, 
welches den Schlüssel automatisch an die Server verteilt, dann direkt 
das Script anlegt, ausführbar macht und auf der Worker-Node in den Cron 
Script mit aufnimmt.

Funktioniert nun genauso wie ich das wollte :-D Ich danke vielmals!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren