[sh] SetUid? how?

Pagina: 1
Acties:

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Ik wil een webinterface schrijven voor een server van ons. De core shellscripts bestaan al, en die wil ik aanroepen met PHP. Echter, de core schellscripts zijn uiteraard alleen bedoeld om aangeroepen te worden als root, en het lijkt me niet verstandig om mijn webserver als root in te stellen... :+

Nu heb ik een poosje gegoogled, en heb ik de term SetUid gevonden, maar ik zie nergens hoe ik dat moet gebruiken. Er is geen programmatje dat SetUid heet, of wat dan ook. Als ik google op SetUid, dan krijg ik alleen pagina's waarin gezegd wordt dat SetUid gevaarlijk is. Duh.

Kan iemand me voorzien van antwoorden of zoekermen?

[ps]
Ik wist niet zeker of dit een topic was voor PW of NOS, dus heb ik maar op PW gegokt. Mocht een mod dit topic liever in NOS hebben, kick gerust...
[/ps]

exit(0);

Localhost, sweet localhost


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Ik heb het gedaan via een (PHP)CGI en die met cron laten starten, en de gegeven tijdelijk cachen in een database.

Maar je kan ook gebruik maken van http://httpd.apache.org/docs/suexec.html

Programmer - an organism that turns coffee into software.


Verwijderd

Probeer anders een c proggie te compileren met deze inhoud
code:
1
2
3
4
int main() {
  setuid(0);
  return 0;
}

of zoiets, dat zet de user op root. suExec is beter voor de beginner denk ik

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
LuCarD schreef op 12 augustus 2002 @ 16:22:
Ik heb het gedaan via een (PHP)CGI en die met cron laten starten, en de gegeven tijdelijk cachen in een database.

Maar je kan ook gebruik maken van http://httpd.apache.org/docs/suexec.html
in een woord: jakkes.
het werkt, maar om nou te zeggen dat het charmant is?

Zowiezo moeten bij mij de gegevens direct worden aangepast. Een minuut vertraging is het maximaal toelaatbare, maar om nou iedere minuut een vaag scriptje te cronnen...

Localhost, sweet localhost


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

kvdveer schreef op 12 augustus 2002 @ 16:34:
[...]

in een woord: jakkes.
het werkt, maar om nou te zeggen dat het charmant is?

Zowiezo moeten bij mij de gegevens direct worden aangepast. Een minuut vertraging is het maximaal toelaatbare, maar om nou iedere minuut een vaag scriptje te cronnen...
Jakkes?

Nou juist niet... je kan hem extreem secure maken aangezien je de gebruiker nooit rechtstreeks toegang geeft tot de root account.

En wat is het probleem om een script te cronnen? Je hebt het tenslotte zelf geschreven? Dus je weet exact wat er op je systeem gebeurt.

Programmer - an organism that turns coffee into software.


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Verwijderd schreef op 12 augustus 2002 @ 16:32:
suExec is beter voor de beginner denk ik
In het apache stukkie ove r suEXEC staat::
7. Is the target user NOT superuser?
Presently, suEXEC does not allow 'root' to execute CGI/SSI programs.
Dat gaat dus niet werken.

Dat cproggie doet verder niets dan de uid op 0 zetten, de root user. Wat heb ik daar aan? Moet ik dan mijn proggie verder in c gaan herschrijven?

[ Voor 0% gewijzigd door kvdveer op 12-08-2002 16:41 . Reden: te vroeg op send gedrukt ]

Localhost, sweet localhost


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
LuCarD schreef op 12 augustus 2002 @ 16:38:
[...]

Jakkes?

Nou juist niet... je kan hem extreem secure maken aangezien je de gebruiker nooit rechtstreeks toegang geeft tot de root account.
Daar heb je een punt, dat is inderdaad opzich mooi.
LuCarD schreef op 12 augustus 2002 @ 16:38:
En wat is het probleem om een script te cronnen? Je hebt het tenslotte zelf geschreven? Dus je weet exact wat er op je systeem gebeurt.
Het gaat me er niet om dat ik een script cron, maar dat dat iedere minuut gebeurt!

Localhost, sweet localhost


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

kvdveer schreef op 12 augustus 2002 @ 16:41:

[...]
Het gaat me er niet om dat ik een script cron, maar dat dat iedere minuut gebeurt!
Hoezo? Wat is het probleem om een script te draaien elke minuut?

Programmer - an organism that turns coffee into software.


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
LuCarD schreef op 12 augustus 2002 @ 16:44:
[...]

Hoezo? Wat is het probleem om een script te draaien elke minuut?
Iets kost me iedere minuut procesorcycles, zonder dat het iets doet.
Nogmaals: het werkt, en vanuit securityoogpunt is het idd erg sterk, maar efficient is het niet.

Localhost, sweet localhost


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Als jij je scripts goed schrijft merk je er echt nix van hoor....

pseudo code achtig iets
code:
1
2
3
4
als niets queue
  stop
ander
  doe jouw werk


Zo begin je het cron script. :)

Programmer - an organism that turns coffee into software.


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Neemt niet weg dat ik al mijn scripts zal moeten aanpassen...
Is er geen exec() call waarmee ik een userid kan meegeven?

edit:

Ik weet dat zo'n call niet bestaat, ik kan de functielijsten van PHP dromen. Daarnaast zou het een vrij groot security risico inhouden.
De vraag is dus: bestaan er structuren waarmee ik een (bestaand) script als root kan uitvoeren, zonder apache als root te laten draaien.

Localhost, sweet localhost


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

exec zal ten allertijden draaien als dezelfde user als dat het script gestart wordt. Het script wordt gestart door de webserver en die heeft als rechten meestal (nobody)

Je kan ook een tweede apache installeren op een andere poort en de mensen daar heen sturen? en die apache als root draaien...


Maar misschien moet je een Req om het topic te verplaatsen naar NOS, daar zijn de mensen die alles weten van *nix achtige omgevingen. En ze hebben meestal ook wel verstand van Scripting. Helemaal dit soort.. .

Programmer - an organism that turns coffee into software.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Kan je je script niet met chmod +s setuid maken?
En gaat het dan niet als root?

edit:

Geloof niet dat dat werkt

  • igmar
  • Registratie: April 2000
  • Laatst online: 23-08 16:57

igmar

ISO20022

kvdveer schreef op 12 augustus 2002 @ 17:15:
Neemt niet weg dat ik al mijn scripts zal moeten aanpassen...
Is er geen exec() call waarmee ik een userid kan meegeven?

edit:

Ik weet dat zo'n call niet bestaat, ik kan de functielijsten van PHP dromen. Daarnaast zou het een vrij groot security risico inhouden.
De vraag is dus: bestaan er structuren waarmee ik een (bestaand) script als root kan uitvoeren, zonder apache als root te laten draaien.
Nee, en als er al een zou bestaan zou ie alleen werken als de uid / euid 0 is. MAW : Dan kun je net zo goed set*uid() gebruiken :)

  • igmar
  • Registratie: April 2000
  • Laatst online: 23-08 16:57

igmar

ISO20022

ACM schreef op 12 augustus 2002 @ 17:52:
Kan je je script niet met chmod +s setuid maken?
En gaat het dan niet als root?

edit:

Geloof niet dat dat werkt
ug+s werken niet op interpreter scripts. De kernel negeert die bits gewoon.

De poster heeft 2 mogelijkheden :

- Apache als root
- Crontab

Er zijn wel apache modules die die kunnen (mod_become, mod_suid), maar echt ideaal is het niet. Ik zou voor de crontabs gaan zelf.
Pagina: 1