• 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] shell-skript mit root-pw-abfrage

mca

Hacker
suse 9.2
moin ihr programmierer,
ich würde da gerne ein shell-skript schreiben und auf meinen desktop legen, damit ich es beim neustart und bei bedarf direkt ausführen kann.
das skript beinhaltet aber root-befehle, es sollte also nach dem anklicken ein popup mit root-pw-abfrage folgen. eine pw-abfrage in der konsole wäre auch ok, es sollte nur möglichst eine einmalige abfrage sein. so sieht dann z.b. befehlsreihenfolge aus:
{
cd /home/ich/programme/ktvtoday
./ktvtoday-start
su
webalizer
cd /usr/local/sbin
./proftpd
}
ich hab schon ein wenig mit "kdesu" rumprobiert, habe aber kaum programmier-erfahrungen, außerdem muss ich ja noch irgendein "chmod" machen, wobei mich nix. danke schonmal für eure mühe.
 

TeXpert

Guru
Variante 1: alle Programme, die bei Dir Root-Rechte brauchen, also webalizer und proftpd in die sudoers für Deinen Benutzer konfigureren (entweder mit oder ohne Passwort), dann änderst du das Script in
Code:
cd /home/ich/programme/ktvtoday
./ktvtoday-start
sudo webalizer
sudo /usr/local/sbin/proftpd

Variante 2: den Benutzer generell in die Sudoers aufnehmen, dann musst Du beim 1. mal das Passwort aufrufen und das 2. mal nicht mehr

siehe man [sudo|sudoers|visudo]
 
OP
M

mca

Hacker
re: das mit dem sudoers/sudo hab ich nicht verstanden, "man sudoers" hilft mir auch kein bisschen. mein skript sieht jetzt so aus:

sudo webalizer
cd /usr/local/sbin
sudo ./proftpd
exit
xhost +localhost
cd /home/mca/programme/superkaramba-themes/ktvtoday
./ktvtoday-start

wenn die beiden sudo-befehle am anfang stehen, brauch ich nur einmal das pw eingeben, und zumindest webalizer und proftp starten gerootet. danach kommt aber nix, keine rückmeldung. das einzige, was er macht ist das "exit". hier ist noch die ausgabe der konsole:

ich@linux:~/temp3> sh test.sh
Password:
Warning: Invalid keyword 'DNSCache' (/etc/webalizer.conf)
Warning: Invalid keyword 'DNSChildren' (/etc/webalizer.conf)
Webalizer V2.01-10 (Linux 2.6.8-24-smp) English
Using logfile /var/log/apache2/access_log (clf)
Creating output in /var/lib/webalizer
Hostname for reports is 'linux'
Reading history file... webalizer.hist
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record
Generating report for February 2005
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record
Error: Skipping oversized log record
Generating report for March 2005
Generating summary report
Saving history information...
7738 records (8 bad) in 0.36 seconds
ich@linux:~/temp3>

was mache ich falsch?
 

regexer

Advanced Hacker
hassan schrieb:
Mein Vorschlag für eine simple Abfrage des root-Passworts:
Code:
read -s passwort
echo $passwort | su - > /dev/null 2>&1
retc=$?
unset passwort
if [ $retc = 0 ]
then
  echo erfolgreich
else
  echo nicht erfolgreich
fi
Natürlich ist der sudo-Vorschlag eleganter. Dieser bietet gewissermaßen zusätzliche Sicherheit. Bei meinem Vorschlag könnte man das Script ansehen und die Befehle im Erfolgreich-Zweig einfach abtippen...
 

TeXpert

Guru
was hast Du an sudo nicht verstanden? Du musst Deinen User entsprechend konfigurieren, also entweder über username oder über eine Gruppe, so dass dieser User dann webalizer und proftp starten darf, hier kommt es dann auch darauf an, welche Umgebung das Programm braucht, also welche Flags noch gesetzt werden müssen.
 
OP
M

mca

Hacker
danke erstmal für eure hilfe.
ich hab jetzt mein beispielskript hingekriegt. das problem war, dass der befehl "exit" überflüssig war, alles danach wurde nicht ausgeführt. so klappts jetzt, ich muss auch nur einmal das pw eingeben:

sudo webalizer //root
cd /usr/local/sbin
sudo ./proftpd //root
xhost +localhost //ich
cd /home/mca/programme/superkaramba-themes/ktvtoday
./ktvtoday-start //ich

war doch ganz einfach, jetzt nur noch eines: ich hätte dieses skript gerne auf meinem desktop liegen, am besten mit icon. wenn ich als nicht-root-user darauf klicke, sollte sich eine konsole öffnen, da zb. ktvtoday eine konsole braucht, und ich das echo lesen möchte.
ich bin dankbar für alle tips.

microsoft.jpg


alles klar, habs hingekriegt: k-menue-editor, element erstellen, haken bei im terminal starten, auf den desktop verknuepfen, glücklich.
 
Oben