ubuntuusers.de

sudo Passwortabfrage im bash Script

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Ubuntuxer

Anmeldungsdatum:
16. September 2007

Beiträge: 429

Gibt es eine Möglichkeit, dass beim ausführen eines normalen bash Script ohne Terminal eine sudo Passwortabfrage, wie beispielsweise beim starten einer Systemverwaltung, gestartet wird. Oder zumindest kleine Messagebox, (wie bei Windows) erscheint.
Das Problem ist, dass man bei folgendem Code keine Chance hat die Meldung zusehen. Obwohl man trotzdem ins Terminal wechseln muss, um das Programm nun als sudo auszuführen, weiß man wenigstens was man machen muss.
Das Problem ist, dass man zb. bei folgendem Code keine Chance hat die Meldung zusehen.

#!/bin/bash
if [ `whoami` == "root" ]
then
mach irgendetwas
else
{
echo "Bitte führen sie dieses Script als sudo aus."
}
fi

Der_Gestreifte

Avatar von Der_Gestreifte

Anmeldungsdatum:
21. Juni 2007

Beiträge: 1261

Wohnort: Nürnberg

Gibt es eine Möglichkeit, dass beim ausführen eines normalen bash Script ohne Terminal eine sudo Passwortabfrage, wie beispielsweise beim starten einer Systemverwaltung, gestartet wird.

xdialog, zenity, kdialog

Oder zumindest kleine Messagebox, (wie bei Windows) erscheint.

xmessage

BadBoy

Avatar von BadBoy

Anmeldungsdatum:
25. Oktober 2007

Beiträge: 479

der befehl "gksu" (oder auch "gksudo") ruft ein fenster auf, indem man direkt das sudo-passwort eintippen kann
(wie bei synaptic oder ähnlichem)
also:

gksu hierdeinprogramm

un es wird mit root-rechten gestartet

e1bart0 Team-Icon

Avatar von e1bart0

Anmeldungsdatum:
12. Mai 2007

Beiträge: 927

Wohnort: München

BadBoy hat geschrieben:

der befehl "gksu" (oder auch "gksudo") ruft ein fenster auf, indem man direkt das sudo-passwort eintippen kann

Oder kdesudo für KDE... ☺

BadBoy

Avatar von BadBoy

Anmeldungsdatum:
25. Oktober 2007

Beiträge: 479

hasse wahr! 😀

Ubuntuxer

(Themenstarter)

Anmeldungsdatum:
16. September 2007

Beiträge: 429

Erstmal vielen Dank für die vielen unterschiedlichen Antworten ☺
Kann sich ein Script auch selbst noch einmal mit root Rechten ausführen.
zb. ganz einfach jetzt benutz ich noch einmal meinem Code vom Anfang

#!/bin/bash
if [ `whoami` == "root" ]
then
mach irgendetwas
else
{
gksu ./Programm
fi


Dadurch müsste es doch passieren, dass wenn ich das Programm als sudo über die Konsole ausführe, ich kein Passwort erneut eingeben muss; doch wenn ich als normaler User über die Konsole, sowie auch einfach über die Desktopumgebung starten kann. Meine Idee dahinter ist eigentlich das man jedes Programm, auch wenn es root Rechte benötigt ganz einfach auch über die normale Desktopumgebung starten kann und nur in einem kurzen Dialog das Passwort eingeben muss.
😀 Klickibunti 😀

MrKanister

Anmeldungsdatum:
13. Oktober 2007

Beiträge: 2105

Du könntest einfach direkt vor die Befehle, die root-Rechte benötigen könnten ein "sudo" davor setzen.

Ubuntuxer

(Themenstarter)

Anmeldungsdatum:
16. September 2007

Beiträge: 429

Das weiß ich auch, 😉 doch darum geht es nicht.
Der Nutzer soll nur die Möglichkeit geboten, bekommen auch ganz ohne Konsole auszukommen.
Trotzdem soll der Konsolennutzer davon keine Nachteile haben, sodass er z.B. obwohl er eigentlich sudo ist, dass Passwort noch einmal eingeben muss.
sozusagen echte freie Entscheidung ☺

jerik

Avatar von jerik

Anmeldungsdatum:
19. August 2006

Beiträge: 425

schieb einen wrapper davor der die root abfrage macht und ruf dann das programm auf.

Gruss – jerik

Ubuntuxer

(Themenstarter)

Anmeldungsdatum:
16. September 2007

Beiträge: 429

schieb einen wrapper davor der die root abfrage macht und ruf dann das programm auf.

Was ist wrapper? 😕

Pumbaa80 Team-Icon

Avatar von Pumbaa80

Anmeldungsdatum:
5. März 2007

Beiträge: 2130

Wohnort: Residenz des Rechts

Ein Wrapper ist ein Skript, welches nur dazu dient, ein anderes Programm zu starten. (naja, so etwa 😉)

Ubuntuxer hat geschrieben:

Kann sich ein Script auch selbst noch einmal mit root Rechten ausführen.

Ja, so:

#!/bin/bash
if [ "`whoami`" = "root" ]
then
  mach irgendetwas
else
  gksu "$0" "$@"
fi

Ubuntuxer

(Themenstarter)

Anmeldungsdatum:
16. September 2007

Beiträge: 429

Das funktioniert leider bei mir leider nicht;
Der Passwortdialog kommt zwar, aber das Programm ruft sich nicht selber auf, sondern wird danach einfach beendet.
Wenn ich das direkt als sudo übers Terminal ausführe gehts natürlich.

Pumbaa80 Team-Icon

Avatar von Pumbaa80

Anmeldungsdatum:
5. März 2007

Beiträge: 2130

Wohnort: Residenz des Rechts

Überprüfe mal, was dabei rauskommt:

#!/bin/bash
if [ "`whoami`" = root ]
then
  echo we are root
  echo arguments: "$@"
else
  echo we are `whoami`. trying to launch gksu "$0" "$@"
  gksu "$0" "$@"
fi

Ubuntuxer

(Themenstarter)

Anmeldungsdatum:
16. September 2007

Beiträge: 429

Ich habs jetzt geschaft, ich hatte bei deinem vorherigen Script einen anderen Fehler gemacht, weshalb es bei mir nicht funktioniert hat. 😕

Zum Test habe ich versucht eine Datei in meinem home Verzeichnis zu kopieren. Das Problem war nur das ich Idiot ~/ eingegeben habe; die shell hat irgendetwas in /root/ durchsucht und natürlich nix gefunden.
Da das Terminal nur kurz geblinkt hat konnte ich die Fehlermeldung nicht lesen und hab gedacht es wär nichts passiert.

Naja, da sieht man mal auf welche Kleinigkeiten man achten muss. 🙄
Auf jeden Fall vielen Dank euch allen 😀

Antworten |