PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellscript mit rootpasswort-Abfrage



rstuby
19.04.12, 15:10
Hallo!
Ich habe zur Zeit keine GUI für meine Internetverbindungen und bin eigentlich auch so ganz zufrieden. Jedoch dachte ich mir, ich schreibe mir ein kleines Skript, um per Mausklick auf WLAN umschalten zu können:
#!/bin/sh
ifdown eth0
ifdown wlan0
ifup wlan0
Nur funktioniert dieses logischerweise bloß, wenn ich es aus einem Dolphin im Systemverwaltermodus aufrufe, aber nicht über einen Link auf dem Desktop. Gibt es eine Möglichkeit, mit vertretbarem Aufwand über Shellskript ein Passwortabfrage-Fenster zu starten und die weiteren Befehle dann als root auszuführen? Wenn das ginge, könnte ich mir noch andere Skripte erstellen, um z.B. zwischen zwei WLAN-Netzwerken hin- und herzuschalten.

Newbie314
19.04.12, 15:35
sudoers liste ... dann müssen die Nutzer die das Skript als root ausführen dürfen nicht einmal das Passwort eingeben.

zyrusthc
19.04.12, 16:59
/etc/sudoers

foobar ALL=NOPASSWD: /sbin/hdparm
So kann der Benutzer foobar den Befehl mit Rootrechten sudo hdparm ausführen ohne nach dem Passwort gefragt zu werden.

Greeez Oli

undefined
19.04.12, 17:38
/etc/sudoers

foobar ALL=NOPASSWD: /sbin/hdparm
So kann der Benutzer foobar den Befehl mit Rootrechten sudo hdparm ausführen ohne nach dem Passwort gefragt zu werden.

Greeez Oli

Super Beispiel :ugly:
Oder anders...
Wie lasse ich es am besten zu
Das Angreifer meine Festplatte mit all meinen Daten Schrotten können :D

zyrusthc
19.04.12, 17:42
Super Beispiel :ugly:
Oder anders...
Wie lasse ich es am besten zu
Das Angreifer meine Festplatte mit all meinen Daten Schrotten können :D
Ich weiss, besser währe rm gewesen ;)

rstuby
19.04.12, 18:14
Ja, ich wollte ja eigentlich auch nicht wild mit Rechten um mich schmeißen, sondern dass ein Passwortfenster aufgeht. Aber vielleicht sind ifup und ifdown ja nicht so gefährliche Befehle.

zyrusthc
19.04.12, 18:17
Ja, ich wollte ja eigentlich auch nicht wild mit Rechten um mich schmeißen, sondern dass ein Passwortfenster aufgeht. Aber vielleicht sind ifup und ifdown ja nicht so gefährliche Befehle.
Du gibst am besten dort nicht ifup und ifdown ein, sondern dein Script. Somit kann nur dein Script so ausgeführt werden, und mit den richtigen Schreibrechten kann da auch nichts passieren.

Greeez Oli

rstuby
19.04.12, 19:43
Also bei mir steht jetzt

ruth ALL = (root) NOPASSWD:/home/ruth/Skripte/wlanumschalt.sh

aber wenn ich auf den Link auf dem Desktop klicke, passiert nichts. Ich bin weiterhin über eth0 im Internet.

Auf der Konsole passiert folgendes:
ruth@linux-zxlh:~> sh Skripte/wlanumschalt.sh
Skripte/wlanumschalt.sh: Zeile 2: ifdown: Kommando nicht gefunden.
Skripte/wlanumschalt.sh: Zeile 3: ifdown: Kommando nicht gefunden.
Skripte/wlanumschalt.sh: Zeile 4: ifup: Kommando nicht gefunden.

Nachdem ich ifdown und ifup durch /sbin/ifdown und /sbin/ifup ersetzt habe:
ruth@linux-zxlh:~> sh Skripte/wlanumschalt.sh
eth0 device: Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter (rev 02)
No configuration found for eth0
Nevertheless the interface will be shut down.
scripts/ifdown-services: Zeile 100: ./ifcfg-eth0: Keine Berechtigung
scripts/ifdown-connection: Zeile 101: ./ifcfg-eth0: Keine Berechtigung
/sbin/ifdown-dhcp: Zeile 87: ./ifcfg-eth0: Keine Berechtigung
/etc/sysconfig/network/scripts/ifdown-route: Zeile 102: ./ifcfg-eth0: Keine Berechtigung
Error while executing:
Command 'ip route del to 169.254.0.0/16 dev eth0' returned:
RTNETLINK answers: Operation not permitted
Configuration line: 169.254.0.0/16 - - eth0
scripts/ifdown-wireless: Zeile 87: ./ifcfg-eth0: Keine Berechtigung
wlan0 device: Realtek Semiconductor Co., Ltd. RTL8187SE Wireless LAN Controller (rev 22)
No configuration found for wlan0
Nevertheless the interface will be shut down.
scripts/ifdown-services: Zeile 100: ./ifcfg-wlan0: Keine Berechtigung
scripts/ifdown-connection: Zeile 101: ./ifcfg-wlan0: Keine Berechtigung
/sbin/ifdown-dhcp: Zeile 87: ./ifcfg-wlan0: Keine Berechtigung
/etc/sysconfig/network/scripts/ifdown-route: Zeile 102: ./ifcfg-wlan0: Keine Berechtigung
scripts/ifdown-wireless: Zeile 87: ./ifcfg-wlan0: Keine Berechtigung
scripts/ifdown-wireless: Zeile 694: kill: (5200) - Die Operation ist nicht erlaubt
rm: Entfernen von „/var/run/wpa_supplicant-wlan0.conf“ nicht möglich: Keine Berechtigung
wlan0 device: Realtek Semiconductor Co., Ltd. RTL8187SE Wireless LAN Controller (rev 22)
No configuration found for wlan0
ruth@linux-zxlh:~>
Es scheint also keineswegs zu reichen, das Skript in die Sudoers-Liste einzutragen.
Oder ich habe da etwas falsch gemacht. Oder mit den Rechten beim Skript. Wem muss das gehören?

zyrusthc
19.04.12, 19:54
Du musst auch sudo vor dein befehl schreiben!
sudo /home/ruth/Skripte/wlanumschalt.sh


Greeez Oli

rstuby
20.04.12, 05:25
Ich will doch das Skript mit Mausklick starten :-(

Mit sudo funtkioniert es schon mal. Aber das entspricht noch nicht meinen Wünschen.

pibi
20.04.12, 08:07
Ich will doch das Skript mit Mausklick starten :-(Wenn es bei Deiner Distribution das Kommando kdesu (http://www.linfo.org/kdesu.html) gibt, waere das evtl. eine Moeglichkeit.

Gruss Pit.

zyrusthc
20.04.12, 08:13
Ich will doch das Skript mit Mausklick starten :-(

Mit sudo funtkioniert es schon mal. Aber das entspricht noch nicht meinen Wünschen.
Kann man bei Gnome keine Verknüfung auf dem Desktop anlegen und dort einfach den funktionierenden Befehl eintragen?

Greeez Oli

rstuby
20.04.12, 08:22
Ich nutze KDE. Auf die Idee, zu gucken, ob man bei der Verknüpfung irgendwie etwas zusätzlich eintragen kann, hat mich auch gerade ein anderer Thread gebracht. Spätestens heute abend probiere ich das aus.
Wo müsste man denn kdesu hinschreiben? Auch in die Verknüpfung oder ins Skript? (letzteres hatte ich schon ausprobiert, es kam aber kein Abfragefenster.)

zyrusthc
20.04.12, 08:25
Ich nutze KDE. Auf die Idee, zu gucken, ob man bei der Verknüpfung irgendwie etwas zusätzlich eintragen kann, hat mich auch gerade ein anderer Thread gebracht. Spätestens heute abend probiere ich das aus.
Wo müsste man denn kdesu hinschreiben? Auch in die Verknüpfung oder ins Skript? (letzteres hatte ich schon ausprobiert, es kam aber kein Abfragefenster.)
Hast du hinter kdesu auch deinen Befehl geschrieben?

Greeez Oli

pibi
20.04.12, 10:14
Wo müsste man denn kdesu hinschreiben? Auch in die Verknüpfung oder ins Skript?Seufz! Wieso liest eigentlich kaum jemand die Links, die als Hilfe gepostet werden?

Gruss Pit.

marce
20.04.12, 10:46
Weil die Leute immer eine Rundumglücklich-und-fix-und-fertig-Lösung haben wollen, die keinen eigenen Aufwand erfordert.

rstuby
20.04.12, 11:04
Das scheint zu gehen! Vielen Dank! Ich hatte kdesu zuerst in einer extra Zeile, das ging nicht.

rstuby
20.04.12, 15:05
Oh nein... offenbar muss ich dann vor JEDEN der drei Befehle im Skript kdesu schreiben und entsprechend auch dreimal das Passwort eingeben! Da ist es über die Konsole ja einfacher...

rstuby
20.04.12, 15:10
pibi, in dem Link steht doch nur, wie man kdesu als Konsolenbefehl benutzt...

naraesk
20.04.12, 15:43
Verwende ein KDE-Servicemenü, welches die Option anbietet, ein Skript/Programm über kdesu zu starten. Zum Beispiel dieses (http://kde-apps.org/content/show.php/Simple+Root+Actions+Menu?content=72762&PHPSESSID=c39bb1727fa5fa1ca29b4027221d1f93). Oder schreibe doch einfach ein zweites Skript, welches über kdesu dein eigentliches Skript aufruft. Sollte doch genausogut funktionieren.

rstuby
20.04.12, 16:03
Super Idee mit dem zweiten Skript! Das probiere ich gleich mal aus und das andere sehe ich mir auch an.

rstuby
20.04.12, 16:32
Dieses Servicemenü funktioniert auch und ist auch sonst äußerst arbeitssparend für mich! vielen Dank!