• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Problem mit sudoers und Skript

Hallo,

ich versuche vergeblich einen chroot-Aufruf in einem Skript per sudo ohne Passwort zu bewerkstelligen.

Leider ist der Befehl etwas länglich, und hat am Schluss noch wechselnde Parameter:

/usr/bin/chroot /mnt/SUSE_9_3 su - BENUTZER -c /home/BENUTZER/Skripte/SM_kompilieren/SM_kompilieren.sh $1 $2

Mit diesem Befehl soll Seamonkey in einem chroot auf einer Suse 9.3 kompiliert werden. Das Problem ist dass im Skript $1 $2 ersetzt sind durch die beim Skript-Aufruf angegebenen Argumente.

Egal was ich mache, es kommt doch immer die Passwortabfrage. Andererseits will ich aus Sicherheitsgründen nicht den Aufruf von chroot alleine freigeben.

Ich werd aus der man sudoers nicht schlau, wie ich das bewerkstelligen könnte. Und ich will nicht für alle Argumentkonstellationen einen eigenen Cmnd_Alias eintragen. Nur ist die Frage ob es denn anders geht.

Hat jemand nen Tipp? Vorschläge? Alternativen?

Danke,
Saber
 
Saber_Rider schrieb:
Egal was ich mache, es kommt doch immer die Passwortabfrage.
*Ähm*
Selbstverständlich bekommst du immer eine Passwortabfrage - du benutzt ja auch su.
su != sudo
Code:
/usr/bin/chroot /mnt/SUSE_9_3 sudo -u BENUTZER /home/BENUTZER/Skripte/SM_kompilieren/SM_kompilieren.sh $1 $2
evtl. müsstest du den Programmaufruf noch Quoten:
Code:
/usr/bin/chroot /mnt/SUSE_9_3 "sudo -u BENUTZER /home/BENUTZER/Skripte/SM_kompilieren/SM_kompilieren.sh $1 $2"

Lesen: Kontrolliertes Ausfuehren von Befehlen als root
 
Nein, ich nutze nicht su. Der Aufruf den ich genannt habe ist der Befehl, der dann per sudo aufgerufen werden soll.

Und wenn ich den als root aufrufe dann wechselt er ohne Passwortabfrage zu BENUTZER.

Jetzt klarer?
 
Wo ist denn dann das Problem?
=>
Code:
sudo "/usr/bin/chroot ..."
Und dann einen Eintrag in /etc/sudoers
Code:
User_Alias     CHROOT_U = BENUTZER
Cmnd_Alias   CHROOT_C = /usr/bin/chroot /mnt/SUSE_9_3 su - BENUTZER -c /home/BENUTZER/Skripte/SM_kompilieren/SM_kompilieren.sh *

CHROOT_U    hostname = NOPASSWD: CHROOT_C
Hätte man aber auch dem WIKI-Artikel entnehmen können. :roll:
 
b3ll3roph0n schrieb:
Wo ist denn dann das Problem?

Das Problem war, dass ich in der sudoers alles mögliche ausprobiert hatte, und alles nix gebracht hatte. Unter anderem hatte ich auch mit * am Schluss und ohne "" um die Argumente für su gearbeitet.

Aber anscheinend habe ich genau die von dir genannte Kombination, also mit * und ohne "", nicht ausprobiert, denn so scheint es zu gehen.

Danke dir, und tschulligung für die wirre Beschreibung am Anfang.
 
Ach ja, im Wiki entdecke zumindest ich nix zum * am Schluss, und die Sache mit den "" (gehören die rein? ja/nein) entdecke ich auch nicht.
 
Saber_Rider schrieb:
Ach ja, im Wiki entdecke zumindest ich nix zum * am Schluss, [...]
Steht in der Manpage: man sudoers
Stichwort: wildcard

Saber_Rider schrieb:
[...] und die Sache mit den "" (gehören die rein? ja/nein) entdecke ich auch nicht.
Shell-Grundwissen :wink:

Das nächste mal einfach kurz schreiben, was du schon alles versucht hast, damit beim Helfer nicht der Eindruck entsteht, dass der TE keine Lust hat an der Lösung zu arbeiten.
(Ist nicht böse gemeint, aber die Beschreibungen waren verbesserungswürdig :wink: )


Und eine Bitte noch:

Markier den Thread bitte noch als "gelöst".
=> Bitte gelöste Threads mit [gelöst] im Titel versehen !
 
Oben