Root anfordern [SUDO]

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Root anfordern [SUDO]

Beitrag 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 !
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Root anfordern [SUDO]

Beitrag 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
Bild
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Re: Root anfordern [SUDO]

Beitrag von legion »

Vielen lieben Dank für die rasche und professionelle Unterstützung !
Werde gleich mal testen !
Schön wieder hier zu sein !!!
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Root anfordern [SUDO]

Beitrag von mk-soft »

Hatte da mal was für Linux und macOS geschrieben...

Link: https://www.purebasic.fr/english/viewto ... 12&t=71693
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Re: Root anfordern [SUDO]

Beitrag von legion »

Oh Mann, du nimmst mir viel Arbeit ab !!!!!!
Sau geil, ihr seid wirklich spitze hier !!!!
Vielen lieben Dank !!!!
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Root anfordern [SUDO]

Beitrag 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.
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Root anfordern [SUDO]

Beitrag von ccode_new »

:allright:

I like it!
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten