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 !
Root anfordern [SUDO]
- 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]
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- 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]
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
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
- 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]
Vielen lieben Dank für die rasche und professionelle Unterstützung !
Werde gleich mal testen !
Schön wieder hier zu sein !!!
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!
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Re: Root anfordern [SUDO]
Hatte da mal was für Linux und macOS geschrieben...
Link: https://www.purebasic.fr/english/viewto ... 12&t=71693
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
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- 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]
Oh Mann, du nimmst mir viel Arbeit ab !!!!!!
Sau geil, ihr seid wirklich spitze hier !!!!
Vielen lieben Dank !!!!
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!
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- 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]
@mk-soft: Cool, dann ist das quasi die Neustartmethode. Schöner Code!
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.
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]
I like it!
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat