TProcess und Root skript [gelöst]

TProcess und Root skript [gelöst]

Beitragvon corpsman » 18. Nov 2013, 21:24 TProcess und Root skript [gelöst]

Servus, ich bastle gerade eine Anwendung, welche eine weitere Anwendung aufruft, die wiederrum Root Rechte benötigt (alles auf dem Raspberry Pi).

Da ich meine Anwendung selbst aber nicht als Root starten will, hatte ich es mit einem Shellskript versucht, welches ich als user ohne Root rechte aufrufen kann (der entsprechende eintrag in /etc/sudoers sorgt dafür das dies geht).

Wenn ich nun aber mittels TProcess das besagte Skript aufrufe geht es nicht, weil mir hier anscheinend die Rechte fehlen (wenn ich meine Anwendung mittels sudo starte gehts übrigens).

Kennt einer von euch einen weg wie ich ohne root rechte aus meinem Code heraus das skript starten kann, so dass es geht ?

Gruß

Corpsman
Zuletzt geändert von corpsman am 19. Nov 2013, 07:16, insgesamt 1-mal geändert.
--
Just try it
corpsman
 
Beiträge: 1088
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Linux Mint Mate, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 18. Nov 2013, 21:28 Re: TProcess und Root skript

Hast du mal versucht dein Programm in die /etc/sudoers einzutragen? Wenn ich mich recht erinnere, erbt der Kindprozess die Rechte des Elternprozesses. Dein Programm bräuchte also Root-Rechte.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
Lazarusforum e. V.
 
Beiträge: 2184
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (Lazarus 2.0, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Socke » 18. Nov 2013, 21:33 Re: TProcess und Root skript

Vielleicht kommt sudo nicht damit klar, dass es ohne Standardinput/-output gestartet wird. Versuch mal TProcess.Option = [toUsePipes].

Alternativ kannst du das über die Dateirechte steuern. Das setuid-Bit sorgt dafür, dass die Datei mit den Rechten des Dateieigentümers gestartet wird.
  • Besitzer: root
  • Gruppe: die, mit der das Programm aufgerufen werden soll
  • Berechtigungen: rwsr-x--- (bzw. 4750 oktal)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
Lazarusforum e. V.
 
Beiträge: 2683
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon corpsman » 19. Nov 2013, 07:16 Re: TProcess und Root skript

Servus,

@socke
poUsePipes hat leider nichts gebracht.

@m.fuchs
Wenn ich meinem Programm root rechte gebe, dann sind alle Dateien die es erzeugt, auch wieder im Besitz von root, das würde ich gerne verhindern. Zudem möchte ich nicht jeder x-beliebigen Anwendung Root rechte geben... Du hast allerdings recht, bevor es gar nicht geht. Bleibt mir dies als letzte Wahl.

[Edit]
So das vergeben der Dateirechte hat es gebracht *g*. Wenn die run.sh Datei root gehört, und sie von TProcess gestartet wird. Dann muss ich kein PW eingeben und kann die Anwendung mit root rechten starten. Die Ausgabedatei ist wie gewünscht im Besitz meines Benutzers.

Vielen Dank allen Antwortern, ihr wart wie immer eine große Hilfe.

P.S. : wen interessiert was ich hier mache, dem sei das Stuttgarter Lazarustreffen diesen Fr. empfohlen, da stelle ich es vor.

[Edit2]
Leider hat das vergeben der Dateirechte doch nichts genützt. Ubuntu genehmigt dem User nach einmaliger Eingabe des sudo passwortes für 15 minuten die root rechte. Danach muss das PW wieder eingegeben werden. Somit musste ich nun m.fuchs lösung nehmen, mit allen Nachteilen :(.
--
Just try it
corpsman
 
Beiträge: 1088
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Linux Mint Mate, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 64Bit
Nach oben

Beitragvon carli » 19. Nov 2013, 19:10 Re: TProcess und Root skript [gelöst]

Wenn du das Programm mit Sudo startest, werden auch alle erstellten Dateien Eigentum von Root.
Du könntest aber, da du eh root bist, die Datei dem entsprechenden Nutzer übergeben.
carli
 
Beiträge: 660
Registriert: 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2 | 
CPU-Target: 64Bit
Nach oben

Beitragvon corpsman » 20. Nov 2013, 07:06 Re: TProcess und Root skript [gelöst]

@carli

du meinst mit
sudo chown <username> dateiname
? oder gibts da eine in FPC eingebaute variante ? Und kann ich das auch mit von meiner Anwendung erstellten Ordnern machen ?
--
Just try it
corpsman
 
Beiträge: 1088
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Linux Mint Mate, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 64Bit
Nach oben

Beitragvon Achtzig » 20. Nov 2013, 07:31 Re: TProcess und Root skript [gelöst]

Mit FpChown kann man das setzen. Und als Root kannst Du alle Ordner und Dateien ändern - inklusive der selbst erstellten Dateien.

Nachtrag: FpChown befindet sich in der Einheit BaseUnix (bunxovlh.inc).
Achtzig
 
Beiträge: 90
Registriert: 15. Okt 2007, 12:09
OS, Lazarus, FPC: Debian | 
CPU-Target: xxBit
Nach oben

Beitragvon corpsman » 20. Nov 2013, 09:11 Re: TProcess und Root skript [gelöst]

wenn ich das richtig sehe, muss ich dazu die UID des Benutzers und seiner Gruppe kennen, mittels "id" bekomme ich das in einer Konsole raus, geht es auch mit Lazarus mitteln, habe es in baseunix nicht gefunden.
--
Just try it
corpsman
 
Beiträge: 1088
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Linux Mint Mate, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 64Bit
Nach oben

Beitragvon Achtzig » 20. Nov 2013, 09:17 Re: TProcess und Root skript [gelöst]

User-ID und Group-ID kann mit den Funktionen GetUserId beziehungsweise GetUserGid aus der Einheit users ermittelt werden.
Achtzig
 
Beiträge: 90
Registriert: 15. Okt 2007, 12:09
OS, Lazarus, FPC: Debian | 
CPU-Target: xxBit
Nach oben

Beitragvon corpsman » 20. Nov 2013, 10:02 Re: TProcess und Root skript [gelöst]

super danke nu gehts.
--
Just try it
corpsman
 
Beiträge: 1088
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Linux Mint Mate, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried