Seite 1 von 1

Root anfordern [SUDO]

Verfasst: 23.04.2019 17:18
von legion
Hallo meine Freunde !
Wenn ich ein Programm starte das root Rechte benötigt, gibt es da eine Möglichkeit
das SUDO anzufordern ? Das Terminal soll dabei nicht benötigt werden, sondern nur
der Aufruf der Executable. Natürlich kann man das über einen Starter oder einen Shell-Script
lösen aber ich meine so wie unter Windows bei den Compiler Einstellungen bzw. reiner PB Code.

Vielen Dank !

Re: Root anfordern [SUDO]

Verfasst: 23.04.2019 17:44
von NicTheQuick
Nachträglich root-Rechte anfordern ist unter Linux nicht angedacht. Du kannst dein Programm höchstens selbst nochmal mit gksudo oder ähnlichem nochmal selbst aufrufen, wodurch ein Passwordeingabe-Dialog erscheint und dein Programm nochmal als root gestartet wird.
Oder du nutzt das SGID-Bit deines Executables zusammen mit geteuid(), getuid() und setuid() im Programm selbst. Dafür muss das Binary root gehören und mit "chmod +s" das SGID-Bit gesetzt worden sein. Wenn ein normaler Nutzer das Programm dann ausführt, läuft es automatisch als root, da root die Datei auch gehört. Jetzt solltest du direkt ab Programmstart mit setuid() und setgid() zunächst die Berechtigungen herunterstufen auf das des aufrufenden Users, den du mir geteuid() erhälst. Soll dann zwischenzeitlich etwas als root gemacht werden, kannst du dein Programm selbst wieder auf root-Rechte heraufstufen. So funktioniert übrigens auch der Befehl "sudo" und noch einige mehr.

Weitere Link:
https://de.wikipedia.org/wiki/Setgid
https://stackoverflow.com/questions/248 ... privileges
https://superuser.com/questions/242903/ ... linux-sudo

Re: Root anfordern [SUDO]

Verfasst: 23.04.2019 18:11
von legion
Vielen lieben Dank für die rasche und professionelle Unterstützung !
Werde gleich mal testen !
Schön wieder hier zu sein !!!

Re: Root anfordern [SUDO]

Verfasst: 23.04.2019 19:27
von mk-soft
Hatte da mal was für Linux und macOS geschrieben...

Link: https://www.purebasic.fr/english/viewto ... 12&t=71693

Re: Root anfordern [SUDO]

Verfasst: 23.04.2019 19:46
von legion
Oh Mann, du nimmst mir viel Arbeit ab !!!!!!
Sau geil, ihr seid wirklich spitze hier !!!!
Vielen lieben Dank !!!!

Re: Root anfordern [SUDO]

Verfasst: 24.04.2019 08:15
von NicTheQuick
@mk-soft: Cool, dann ist das quasi die Neustartmethode. Schöner Code! :allright:

Die Sache mit dem SGID-Bit, setuid(), usw. ist dennoch interessant, aber womöglich eher für Services. Ein gutes Beispiel ist ein Webserver. Der braucht root-Rechte um Port 80 und 443 öffnen zu können, aber entzieht sich kurz danach die Berechtigungen selbst und läuft (z.B. im Falle von Standard-Apache) als User www-data weiter um Webseiten auszuliefern. Es darf nämlich nicht passieren, dass z.B. PHP-Skripte oder sonstige CGI-Skripte auf irgendeine Weise root-Berechtigungen erhalten.

Re: Root anfordern [SUDO]

Verfasst: 29.11.2019 18:38
von ccode_new
:allright:

I like it!