Toon posts:

[PHP] shell_exec en su

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag in mijn PHP scriptje met shell_exec iets uitvoeren met een andere user. Als ik shell_exec("whoami"); uitvoer krijg ik nobody terug, maar ik wil ivm met schrijfrechten het graag met een andere user doen.
Dus toen had ik bedacht
shell_exec("echo password | su user;whoami");
nu zegt su
su: must be run from a terminal
en whoami levert nog steeds nobody op.
Iemand een idee hoe ik toch op mijn eigen user account dingen kan uitvoeren?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:21

Janoz

Moderator Devschuur®

!litemod

De vraag is "Wil je dat wel"..

Als het bijvoorbeeld om bestanden uploaden of wijzigen gaat, dan kun je ook de benodigde bestanden op world writable zetten.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Ja dat wil ik, Ik wil nl:
Programma's kunnen uitvoeren als een andere gebruiker. (Heb het nl niet alleen nodig voor schrijfrechten, maar voor nog wel meer).

Verwijderd

En dat via een webinterface, lijkt je dat een goed idee? Daar is volgens mij SSH(2) voor in het leven geroepen.

  • igmar
  • Registratie: April 2000
  • Laatst online: 09-09 19:53

igmar

ISO20022

Ik wil graag in mijn PHP scriptje met shell_exec iets uitvoeren met een andere user. Als ik shell_exec("whoami"); uitvoer krijg ik nobody terug, maar ik wil ivm met schrijfrechten het graag met een andere user doen.
Dus toen had ik bedacht
shell_exec("echo password | su user;whoami");
nu zegt su
su: must be run from a terminal
en whoami levert nog steeds nobody op.
Iemand een idee hoe ik toch op mijn eigen user account dingen kan uitvoeren?
Niet op de standaard manier. Ik heb wel een module voor Apache waarmee je HTTP proces loopt onder de user die aangegeven word, maar op de standaard manier is het niet mogelijk, tenzij je met cgi gaat werken.

Verwijderd

Topicstarter
Die extra module moet je zeker instaleren met root rechten. Die heb ik natuurlijk niet.
Denk dat er wel CGI ondersteuning is, maar heb nog nauwelijks met CGI gewerkt, wel wat met PHP.

Maar ik dacht het zo ook wel moet kunnen, ik heb toch de juiste passwords allemaal?
Bestaat er ook niet een su-achtige commando om een commando op met speciale user-rechten uitvoeren?
En dat via een webinterface, lijkt je dat een goed idee? Daar is volgens mij SSH(2) voor in het leven geroepen.
Ja dat lijkt mij een goed idee.
SSH(2) is uitgevonden voor een secure lijn ipv telnet. Met PHP blijft alles op de server draaien alleen de output van een van te voren bepaald process wordt (weleens waar plat) terug gestuurd, maar met die info kunnen ze toch nooit iets beginnen.
Wachtwoord en zo blijven volgens mij allemaal netjes binnen de server dus kan ook niemand afluisten.

Verwijderd

Topicstarter
Omdat ik eigenlijk nog geen antwoord heb gekregen wil ik het onderwerp nog een keer trappen, dan geef ik het op.

  • franklin
  • Registratie: Februari 2000
  • Laatst online: 14-09 14:27

franklin

denkt teveel...

je zou php kunnen installeren als cgi en niet als server module dan kun je al wat meer van dat soort dingen doen! maar vraag blijft idd of je het echt wil :P

wat voor een module ging het hier boven over?

Verwijderd

Topicstarter
Nee kan niks instaleren op die bak (ben geen root) en wil dat eigenlijk ook niet.
Wil alleen su zover krijgen dat hij doet wat ik van hem vraag.
Is er niet een soortgelijk commando in de shell dat bijna hetzelfde doet als su, maar wel vanuit PHP een commando wil uitvoeren?

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

als je een compiler hebt kan je via een eigen c-proggie
die setuid van de user is, vast wel het commando uitvoeren.

Dat dit niet secure is snap je hopelijk zelf ook wel ;-)
Als jij het via de webserver kan, kan de rest het ook.

Skill is when luck becomes a habit.


Verwijderd

Topicstarter
als je een compiler hebt kan je via een eigen c-proggie
die setuid van de user is, vast wel het commando uitvoeren.
Misschien door een gebrek aan diehard linuxshell ervaring, je bedoelt dat ik een programma kan schrijven die van een user is, maar die als die uitgevoerd door nobody (Webserver dus) gaat draai met de geschikt user-authorisatie?
Dat dit niet secure is snap je hopelijk zelf ook wel ;-)
Als jij het via de webserver kan, kan de rest het ook.
Ook nog niet helemaal. Ik kan toch zelf uit kiezen wel commando mag worden uitgevoerd? Neem bijvoorbeeld ls. Ik wil graag ls op door een bepaalde user laten draaien via de webserver. Dan begrijp ik wel dat andere dat ook via die webserver kunnen, maar die kan dan toch niet bij andere dingen? Webserver wil alleen maar ls uitvoeren? Wat is dan het security risco?
Pagina: 1