Befehl nach der Anmeldung automatisch als Root ausführen

Befehl nach der Anmeldung automatisch als Root ausführen

Ich verwende evrouter, um Tastendrücke von den zusätzlichen Tasten meiner Maus zu simulieren. Das funktioniert prima, aber ich muss den Befehl mit sudo ausführen, damit es funktioniert. Ich kann also nicht einfach meine DE für den Autostart verwenden.

Ich habe init.d in Betracht gezogen, aber soweit ich gehört habe, funktioniert dies nur für verschiedene Phasen des Bootvorgangs, und ich muss dies als Root ausführennachAnmeldung.

$ cat .evrouterrc 
"Logitech G500" "/dev/input/event4" any key/277 "XKey/0"
"Logitech G500" "/dev/input/event4" any key/280 "XKey/9"
"Logitech G500" "/dev/input/event4" any key/281 "XKey/8"
$ sudo evrouter /dev/input/event4

Bearbeiten:Okay, es sieht so aus, als ob ich die Option von lightdm.conf verwenden kann, session-setup-scriptum ein Skript als Root auszuführen. Das Skript, das ich habe, ist unten, aber wie erwartet ist es beim Ausführen als Root id -unicht mehr gleich 1000 und die if-Anweisung wird nie ausgeführt. Gibt es ein Argument oder eine Variable, mit der ich den Benutzernamen oder die ID abrufen kann?

Antwort1

Nachdem Ihr Computer hochgefahren ist, führt Linux alles aus, was in der Crontab-Datei Ihres Systems steht. Cron ist ein Programm, das Befehle, Programme oder Skripte so plant, dass sie zu ganz bestimmten Tageszeiten ausgeführt werden. Jeder Benutzer hat eine Crontab, aber in dieser Situation ist die Crontab des Systems für eine solche Aufgabe geeignet.

Sie können cron so konfigurieren, dass beim Systemstart Befehle oder Programme ausgeführt werden. Ich denke, das ist es, was Sie meinen.

Um es entsprechend zu bearbeiten, öffnen Sie die Crontab-Datei Ihres Systems, indem Sie den Befehl ausführen. sudo vim /etc/crontabErsetzen Sie „vim“ gerne durch Ihren bevorzugten CLI-Texteditor.

Fügen Sie die Zeile (ersetzen Sie die entsprechenden Dinge durch genau das, was Sie brauchen, wie Befehle usw.) unter allen anderen hinzu. @reboot evrouterHinweis: Die beste Idee wäre, ein Skript zu erstellen, die Befehle darin zu platzieren und das Skript mit crontab auszuführen. Es ist wirklich Ihre Entscheidung.

Abhängig von Ihrer Distribution müssen Sie möglicherweise angeben, als wen der Befehl ausgeführt werden soll, oder nicht. @rebootMeistens enthält die Crontab-Datei oben einige Kommentare, die Ihnen Anweisungen geben. Natürlich ist es für Sie wahrscheinlich am nützlichsten, sich die anderen Einträge in dieser Datei anzusehen.

Antwort2

Durch die Verwendung lightdm.confdes session-setup-scriptWerts konnte ich den Befehl wie erwartet als Root ausführen.

session-setup-script=/opt/hacks/lightdm-startup

In der Zwischenzeit in einem anderen Ordner:

#!/bin/bash
if [ "$USER" = "j" ]
then
evrouter /dev/input/event4
fi

Ich bin immer noch nicht sicher, warum ==die if-Anweisung nicht funktioniert hat und =warum ... Bash ist manchmal unbeständig.

verwandte Informationen