Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst] shell-skript mit root-pw-abfrage

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
mca
Hacker
Hacker
Beiträge: 351
Registriert: 10. Okt 2004, 00:27

[gelöst] shell-skript mit root-pw-abfrage

Beitrag von mca »

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.
Zuletzt geändert von mca am 9. Mär 2005, 13:45, insgesamt 1-mal geändert.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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: Alles auswählen

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]

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
mca
Hacker
Hacker
Beiträge: 351
Registriert: 10. Okt 2004, 00:27

Beitrag von mca »

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?
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Re: shell-skript mit root-pw-abfrage (anfänger)

Beitrag von regexer »

hassan hat geschrieben:eine pw-abfrage
Mein Vorschlag für eine simple Abfrage des root-Passworts:

Code: Alles auswählen

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...
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
mca
Hacker
Hacker
Beiträge: 351
Registriert: 10. Okt 2004, 00:27

Beitrag von mca »

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.

Bild

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