So starten Sie eine Anwendung beim Anmelden als root

0

Ich versuche, ein Skript zu entwerfen, das eine Anwendung öffnet, die ich dann als Anmelde-Hook hinzufüge. Wenn sich der Benutzer anmeldet, führt der Anmelde-Hook das Skript als root aus und startet die Anwendung dann als root . Ich habe überhaupt keine Skripterfahrung und habe einige Beispiele für andere Skripte ausprobiert, aber ohne Erfolg. Jede Hilfe wäre sehr dankbar.

BEARBEITEN. Ich verwende OS X 10.6.4

Stiny861
quelle
Auf welchem ​​Betriebssystem bist du? Ubuntu? Wenn es hier ist, geht es los - Ubuntu Start up
slotishtype
Warum muss die Anwendung aus Neugier als Root ausgeführt werden?
Stephen Jennings
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 Wurzel können sie es nicht töten.
Stiny861

Antworten:

1

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

Wes Hardaker
quelle
0

Sie können das Shell-Skript als setuid definieren (es wird also immer als Eigentümer der Datei ausgeführt, die als root fungiert), aber dies ist eine sehr gefährliche Sache. Es gibt Auswirkungen auf die Sicherheit, wenn Shell-Skripte als setuid festgelegt werden .

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

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

Machen Sie jetzt das Skript setuid aus dem Terminal:

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

Der erste Befehl macht root zum Eigentümer der Datei. Das zweite setzt es auf setuid, liest / schreibt / führt es von seinem Besitzer aus und liest / führt es von allen anderen aus.

Gehen Sie 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, und da es setuid ist, sollte es als root ausgeführt werden.

Stephen Jennings
quelle