Entwickeln und Implementieren einer Anwendung, die als root mit setuid ausgeführt wird?

759
Allyl Isocyanate

Ich habe eine Anwendung, die mit Root-Berechtigungen ausgeführt werden muss.

Die Verwendung des Setuid-Bits in der Anwendungsdatei scheint eine logische Wahl zu sein. Ich verstehe SETUID so, dass die Dateien im Besitz von root sein sollten und nur von root beschreibbar sein können. Andernfalls könnte ein nicht vertrauenswürdiger Benutzer mit Schreibberechtigung die Datei bearbeiten und alles im Root-Kontext ausführen.

Dies erschwert jedoch die Bereitstellung der Anwendung, da ich den Eigentümer der Dateien nach der Bereitstellung als Root festlegen muss (vom Remote-Git-Repo heruntergezogen).

 sudo chown root:root /app/rootprog sudo chmod 6711 /app/rootprog 

Gibt es eine Möglichkeit, dies zu vermeiden, oder eine bessere Möglichkeit, eine Anwendung zu entwickeln und bereitzustellen, die als Root ausgeführt werden muss?

1

1 Antwort auf die Frage

1
RedGrittyBrick

Eine Anwendung, die als Root ausgeführt werden muss, muss von einem Administrator mit Root-Zugriff installiert werden. Dies kann mithilfe der Privilegieneskalation (z. B. via sudooder gleichwertig) erfolgen.

Die beste Methode zum Bereitstellen der Anwendung hängt von mehreren Faktoren ab, wird jedoch wahrscheinlich am besten mit dem primären Paketmanager der Verteilung erledigt. Dies kann bedeuten, dass eine RPM-Datei zum Download bereitgestellt wird, oder das Hinzufügen eines Pakets zu einem im Internet zugänglichen Repository.