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:
|
# 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.