Wie kann man eine Anwendung beim Anmelden als root starten?

629
Stiny861

Was ich versuche zu tun, ist ein Skript zu entwerfen, das eine Anwendung öffnet, die ich dann als Login-Hook hinzufüge. Wenn sich der Benutzer anmeldet, führt das Login-Hook das Skript als root aus, woraufhin die Anwendung als root gestartet wird . Ich habe überhaupt keine Erfahrung mit Skripten und habe einige Beispiele anderer Skripte ausprobiert, jedoch ohne Erfolg. Jede Hilfe wäre sehr dankbar.

BEARBEITEN. Ich verwende OS X 10.6.4

0
In welchem ​​Betriebssystem bist du? Ubuntu? Wenn es so weit ist, gehen Sie - [Ubuntu Start up] (http://embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/) slotishtype vor 12 Jahren 0
Warum muss die Anwendung aus Neugier als root laufen? Stephen Jennings vor 12 Jahren 0
Die Anwendung muss als Root ausgeführt werden, damit die Benutzer nicht versuchen, den Prozess abzubrechen. Sie können ihre eigenen töten, aber als root können sie es nicht töten. Stiny861 vor 12 Jahren 0

2 Antworten auf die Frage

1
Wes Hardaker

Wenn es sich um ein grafisches Login handelt, verknüpfen Sie die Anwendung mit ~ root / Desktop / Autostart /. Wenn es sich um eine Shell-Anmeldung handelt, können Sie Befehle in ~ / .login eingeben, und es wird aufgerufen. Dies ist jedoch in der Regel gefährlich und es muss sichergestellt werden, dass das Programm gestoppt wird, was passiert, wenn sich der Benutzer (root) mehrmals anmeldet, usw.

0
Stephen Jennings

Sie können das Shell-Skript setuid erstellen (es wird also immer als Eigentümer der Datei ausgeführt, die root ist), aber dies ist eine sehr gefährliche Angelegenheit. Es gibt Sicherheitsauswirkungen für das Erstellen von Shell-Skripts setuid .

Das Skript würde ungefähr so ​​aussehen:

#!/bin/sh - open /Applications/Whatever.app 

Machen Sie nun das Skript setuid vom Terminal aus:

sudo chown root file.sh sudo chmod 4755 file.sh 

Der erste Befehl macht root zum Besitzer der Datei. Die zweite Einstellung setzt es als setuid, als Lesen / Schreiben / Ausführen durch den Eigentümer und als Lesen / Ausführen bei allen anderen.

Wechseln Sie dann in Mac OS X zu Systemeinstellungen → Konten und fügen Sie das Shell-Skript als Anmeldeelement für den Benutzer hinzu. Jedes Mal, wenn sich der Benutzer anmeldet, wird das Skript aufgerufen. Da es sich um setuid handelt, sollte es als root ausgeführt werden.