Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellscript mit rootpasswort-Abfrage
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.
sudoers liste ... dann müssen die Nutzer die das Skript als root ausführen dürfen nicht einmal das Passwort eingeben.
/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
/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
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 ;)
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.
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
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?
Du musst auch sudo vor dein befehl schreiben!
sudo /home/ruth/Skripte/wlanumschalt.sh
Greeez Oli
Ich will doch das Skript mit Mausklick starten :-(
Mit sudo funtkioniert es schon mal. Aber das entspricht noch nicht meinen Wünschen.
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.
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
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.)
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
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.
Weil die Leute immer eine Rundumglücklich-und-fix-und-fertig-Lösung haben wollen, die keinen eigenen Aufwand erfordert.
Das scheint zu gehen! Vielen Dank! Ich hatte kdesu zuerst in einer extra Zeile, das ging nicht.
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...
pibi, in dem Link steht doch nur, wie man kdesu als Konsolenbefehl benutzt...
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.
Super Idee mit dem zweiten Skript! Das probiere ich gleich mal aus und das andere sehe ich mir auch an.
Dieses Servicemenü funktioniert auch und ist auch sonst äußerst arbeitssparend für mich! vielen Dank!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.