C++ Programm als root ausführen

badday

Commander
Registriert
Sep. 2007
Beiträge
3.023
Moin zusammen,


ich schreibe gerade an einem Programm, dass, da es auf einige Dateien zugreifen muss, die nur root ändern kann, als root ausgeführt werden muss.

Ich will aber nicht, dass man immer in der Konsole sudo o. Ä. eintippen muss, sondern, dass einfach ein Fenster erscheint, ähnlich wie es bei anderen Programmen bereits passiert (z. B. TrueCrypt).

Muss ich da selber was schreiben oder gibt es da einen einfacheren Weg?



Vielen Dank!


badday
 
Mit GUI?
Dann könntest du ja deinen eigenen "root-Passwortdialog" basteln und daraufhin mit mit dem Passwort einen separaten Prozess mit dem eigentlichen Programm starten.
Keine Ahnung, ob man sudo oder su ein Passwort als Argument übergeben kann.
 
Mit GUI, ja.

Selber basteln ist möglich, aber ich dachte, es gibt vielleicht eine einfachere Lösung.

Vll. weiß ja jemand etwas.

Gruß,

badday
 
Es gibt unter KDE kdesu. Unter Gnome entsprechend gnomesu. Google weiß jeweils mehr.
Vielleicht kannst du dir so sparen was programmieren zu müssen.
 
Danke für die schnelle Antwort,

Nun, das würde vermutlich irgendwie funktionieren, hat aber 3 Probleme:
1. Man muss schauen ob gnome oder kde genutzt wird.
2. Ist dies in jeder Distribution installiert?
3. Was ist, wenn weder KDE noch Gnome genutzt werden?

Falls ich mich irre, bitte ich um Korrekturen.

Falls als jemand noch irgendetwas weiß: Ich bin für jede Antwort dankbar.


Gruß,

badday
 
Was du machen könntest, das Programm beim make install nach /usr/sbin kopieren lassen und im Programm die Rechte prüfen. Der Rest ist wie oben beschrieben abhängig vom Windowmanger. Dieser ruft dann kdesu oder gnomesu/gksudo auf um sich die Rechte zu beschaffen.

Hoffe das hilft, auch wenn der Thread schon etwas älter ist.
 
eventuell tuts die klassische Variante mit Dateizugriffsrechten und ganz ohne Rückfragen:
Eine Gruppe anlegen, in die alle Nutzer kommen, die das Programm ausführen dürfen. Das Programm dem Nutzer root und dieser Gruppe übereignen (chown root programm; chgrp irgendeinegruppe programm), nur für diese Gruppe ausführbar machen und das suid-bit setzen (chmod 4550 programm).
 
Zuletzt bearbeitet:
Moin,

erstmal danke für die Antworten.

@Epyx: make install wird nicht ausgeführt, da das Programm nicht installiert wird

@mensch183: Setzt dein Vorschalg eine Installation voraus?



Danke.


Gruß,

badday
 
Vielleicht erläuterst du lieber mal näher, was dein Programm genau leisten soll. Was soll es tun? Wer soll das Programm starten dürfen? Ich vermute fast, daß eine grundsätzliche andere Lösung als dein selbstgeschriebenes Programm eher zum Ziel führt.

Programme, die normalen Nutzern erlauben Dinge zu tun, die normalerweise nur root darf, sind immer sehr, sehr heikel. Wer nichtmal Unix-Zugriffsrechte kennt, sollte jedenfall _niemals_ solche selbstgeschriebenen Programme außerhalb einer reinen Spielumgebung einsetzen.
 
Moin,

nun, das Programm benötigt lediglich Schreibrechte an Konfigurationsdateien im root-Verzeichnis.

Es ist durchaus möglich, das Programm über die Konsole mit sudo etc. zu starten, aber da das Hauptaugenmerk auf einfacher Bedienung liegt, dachte ich mir, dass dies wohl die elegantere (sprich benutzerfreundlichere) Lösung ist.

Falls ihr das anders seht, ich lasse mich gerne belehren.


Danke für die guten Antworten.

Gruß,

badday
 
Zurück
Oben