ubuntuusers.de

Autostart Root Command

Status: Ungelöst | Ubuntu-Version: Lubuntu 14.04 (Trusty Tahr)
Antworten |

HaCeMei Team-Icon

Anmeldungsdatum:
2. August 2010

Beiträge: 2265

Hi buntulux,

da ich mit iftop noch nicht gearbeitet habe, kann ich nur theoretisch antworten.

Du möchtest das Programm ohne sudo-Passwort starten. Das lässt sich über Rechte regeln. Entweder muss der aktuelle Benutzer in einer Gruppe sein, die iftop ausführen darf, das hieße als iftop einer solchen Gruppe zuweisen. Oder die Datei muss für alle Benutzer am System ausführbar gemacht werden.

chmod 755 /usr/sbin/iftop

Für den Autostarteintrag benutzt du dann nicht LXsession-default-apps, sondern legst manuell eine passende desktop-Datei in .config/autostart/ an (kein Skript, nicht ausführbar!).

[Desktop Entry]
Type=Application
Name=iftop
Comment=Netzwerk überwachen
Exec=lxterminal -e "/usr/sbin/iftop -i wlan0"
OnlyShowIn=LXDE

Dateiname muss auf *.desktop enden. Falls dieser Starter beim Draufklicken funktioniert, aber nicht bei der Anmeldung, muss noch eine Startverzögerung eingebaut werden, das sehen wir dann.

Gruß, HaCeMei

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14357

HaCeMei schrieb:

..., das hieße als iftop einer solchen Gruppe zuweisen. Oder die Datei muss für alle Benutzer am System ausführbar gemacht werden.

chmod 755 /usr/sbin/iftop

iftop hat sofort nach der Installation, diese Rechte (d. h. 755). Für Folgendes werden aber root-Rechte benötigt:

pcap_open_live(wlan0): wlan0: You don't have permission to capture on that device (socket: Die Operation ist nicht erlaubt)

buntulux

(Themenstarter)

Anmeldungsdatum:
1. Juli 2014

Beiträge: 23

hallo?

HaCeMei Team-Icon

Anmeldungsdatum:
2. August 2010

Beiträge: 2265

buntulux schrieb:

hallo?

buntulux schrieb:

bump

So schnell geht's hier nicht zu, Ungeduld trägt zu einer Lösung nichts bei.

lubux schrieb:

iftop hat sofort nach der Installation, diese Rechte (d. h. 755). Für Folgendes werden aber root-Rechte benötigt:

pcap_open_live(wlan0): wlan0: You don't have permission to capture on that device (socket: Die Operation ist nicht erlaubt)

Dann sind die Lubuntu-Bordmittel nicht hilfreich. Ich verschiebe den Thread mal Richtung "Shell und Programmieren".

Moderiert von HaCeMei:

Verschoben: Andere Fenstermanager > Shell

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

buntulux schrieb:

Ich würde gerne iftop, welches ein Konsolenprog ist, beim Start laufen lassen. Der genaue Befehl lautet:

 
sudo iftop -i wlan0

Das Problem ist nun, dass dafür root Berechtigung verlangt wird. Was mich dazu zwingt folgenden Befehl davor einzugeben:

 
sudo su
Passwort eingeben:

sudo iftop -i wlan0

Der richtige Weg besteht darin den User, der das tun soll, im Sudofile festzulegen, nicht sudo su aufzurufen oder an den Rechten der Datei rumzupfuschen. Letzteres überlebt vielleicht das nächste Update nicht und führt bei einem IDS zu einem Fehlalarm. Dem sudo su folgen dann vielleicht später Programme, die keine Sudorechte benötigen - wo sie gar schädlich sind.

Der Umstand des Passworteingebens verhindert, dass ich ein Skript für den Befehl erstellen kann um dieses beim Start laufen zu lassen.

Nein, das kann man im sudoers-File spezifizieren.

Gibt es einen Weg dieses terminal Prog dem Autostart hinzuzufügen, und diese Problematik zu umgehen?

Wenn es automatisch beim Start ausgeführt werden soll, dann schreib den Befehl nach /etc/rc.local und er wird automatisch, wie alle init-Skripte, beim Start mit Superuserrechten ausgeführt (oder hat Lubuntu 14.04 kein init-System mehr?).

In dem Skript steht:

1
2
3
4
5
6

# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.

exit 0

Wenn Du Dein Kommando direkt hineinschreibst oder ein Skript aufrufst (Du änderst übrigens die Bezeichnung von Script1 zu Script zu script - das ist falsch und benutzerfeindlich. Wenn Du das Skript testest musst Du es so aufrufen, wie es heißt. Nennst Du es um musst Du auch den Aufruf ändern. Wenn Du beim Testen dann weiter den alten Namen verwendest können die Korrekturen natürlich nicht funktionieren.

Script1 ist aber auch ein Name der gar nichts über den Zweck des Skriptes verrät. Benenn es sinnvoll nach dem was es tut. Ein guter Name wäre iftop.sh, dann sieht man auch gleich dass es ein Skript ist, und kein Binary.

In einem solchen Skript hat ein exit 0 am Ende nichts verloren. Das Programm, wenn es soweit kommt, beendet sich sowieso mit Status 0.

Antworten |