ubuntuusers.de

Sudo-Rechte in C / C++

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

Giesi35

Anmeldungsdatum:
30. Januar 2011

Beiträge: 164

Hallo,
ich habe ein kleines Problem:
Ich möchte das mein Programm temporär (Millisekundenbereich) Superuser-Rechte bekommt, da es eine Datei anlegen muss.
Ein Ansatz wäre über den befehl system und chmod... Allerdings möchte ich nicht system nehmen um sudo-rechte zu bekommen. Das ist einfach zu unsicher!

thomsen

Avatar von thomsen

Anmeldungsdatum:
9. Juni 2010

Beiträge: 188

Wohnort: Hamburg

Naja, ich hätte jetzt gesagt das einfachste wäre das UID Bit zu setzen, damit du dein Programm mit deinem User aber root Rechten ausführen kannst:

1
2
chown root <Dein_Programm>
chmod +s <Dein_Programm>

Aber wenn dir Sicherheit wichtig ist, ist dies denke ich keine kluge Wahl. Daher würde ich vorschlagen, dass du den Teil deines Programms, den du als superuser ausführen müsstest, auslagerst und einen Service anbietest. Sowas ist das wesentlich leichter abzusichern. Also das du ein eigenes Programm schreibst, welches nur besagte Datei anlegt und dein Programm sendet Requests an dieses Programm.

Giesi35

(Themenstarter)

Anmeldungsdatum:
30. Januar 2011

Beiträge: 164

Ich denke mal es wird trotzdem in die Richtung gehen, da es z.Z. die einfachste Lösung ist. Extra auszulagern ist natürlich auch nen guter Ansatz. Allerdings da es sich nur um exakt 3 Befehle handelt, ist es eig. die Sache nicht wert.

1
2
3
FILE *fp = fopen("datei_im_ordner_mit_root_rechten", "r");
fprintf("Ich bin ein Text", fp);
fclose(fp);

Und dann noch andersrum, etwas reinschreiben! Optional wäre eine Textdatei vorzufertigen und einfach reinzukopieren und ggf. löschen.\nAllerdings nicht die feine englische Lösung!

Edit: Es handelt sich dabei NICHT um eine Konsolenanwendung!

thomsen

Avatar von thomsen

Anmeldungsdatum:
9. Juni 2010

Beiträge: 188

Wohnort: Hamburg

Okay, das ist wirklich nicht viel, aber in der 1. Zeile soll es bestimmt "w" beim mode heißen, weil sonst kannst du nicht schreiben. Alternativ kannst du natürlich wenn es keine Konsolenanwendung ist und diese Datei nur einmal bei einer Aktion geschrieben werden soll mit gksudo kurzzeitig Superuser-Rechte bekommen. Das machen viele andere Desktopanwendungen ja auch so, wenn du einen Button klickst, der eine Superuser-Aktion auslöst.

Giesi35

(Themenstarter)

Anmeldungsdatum:
30. Januar 2011

Beiträge: 164

Ja das war einfach verschrieben auf die schnelle 😉
Aber ja genau das habe ich gesucht ...
Danke vielmals

Antworten |