Linux, su mit Passwortübergabe

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Linux, su mit Passwortübergabe

Beitrag von Warf »

Ja das liegt daran das das nur die "effective UID" setzt, folge calls aber mit der normalen uid gemacht werden. Die kannst du mit fpsetuid aus der Unit BaseUnix setzen. Beispiel test.pas:

Code: Alles auswählen

program Test;

{$Mode ObjFpc}{$H+}

uses BaseUnix, process;

var
  outputstr: String;
begin
  fpsetuid(fpgeteuid); // Für den Aufruf von Runcommand wichtig damit das die richtige UID erbt
  WriteLn(fpgeteuid); // Bisschen debugging
  Runcommand('/bin/sh',['-c','whoami'],outputstr,[postderrtooutput]);
  writeln( outputstr);
end.
Kompiliert:

Code: Alles auswählen

➜ fpc ./test.pas
Free Pascal Compiler version 3.2.2 [2023/10/09] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling ./test.pas
Linking test
14 lines compiled, 0.2 sec
➜ ./test
1000
frederic
➜  sudo chown root:root test
➜  sudo chmod +s test
➜  ./test
0
root

Benutzeravatar
six1
Beiträge: 837
Registriert: Do 1. Jul 2010, 19:01

Re: Linux, su mit Passwortübergabe

Beitrag von six1 »

Bin gerade unterwegs...

Aber: ich bin absolut begeistert, was du da alles aus dem Hut ziehst!
Respekt!!!

Und Danke! Melde mich später, wenn ich wieder in Reichweite meines PC bin :wink:
Gruß, Michael

Benutzeravatar
six1
Beiträge: 837
Registriert: Do 1. Jul 2010, 19:01

Re: Linux, su mit Passwortübergabe

Beitrag von six1 »

Wahnsinn! Es funktioniert astrein!
Das hat mir SUPER VIEL ARBEIT erspart warf! DANKE!
Gruß, Michael

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1193
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Linux, su mit Passwortübergabe

Beitrag von kralle »

Moin,

nicht vergessen nach gewünschten Aktion die root-Rechte wieder entziehen und daran denken, alles was vielleicht in der Zeit parallel stattfindet z.B. Logfile schreiben oder so, findet als root statt.

Gruß Kralle
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
six1
Beiträge: 837
Registriert: Do 1. Jul 2010, 19:01

Re: Linux, su mit Passwortübergabe

Beitrag von six1 »

Das stimmt so nicht ganz, denn das logfile wird in meiner hauptanwendung geschrieben, welche die shellausgabe protokolliert und dies unter normalen benutzerrechten erledigt.
Meine Helper App schreibt selbst nichts.

Aber ich verstehe natürlich, worauf du hinweisen möchtest.
Gruß, Michael

Antworten