[Linux/PHP] Uitvoeren als gebruiker

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
Beste Tweakers,

Voor een projectje waarmee ik bezig ben, heb ik 2 servers. De ene server heeft het panel, de andere server heeft de gameservers. Dit werkt allemaal perfect, de ene server houdt netjes contact met de andere server via HTTP/XML.

Nou wil ik echter dat iemand op het panel aan kan klikken dat een gameserver opnieuw gestart moet worden. Ok, geen probleem, je killt de oude en start de nieuwe.

Nou lukt het killen van de oude met gemak: je zoekt in de processenlijst en killt de goede. Het starten van een nieuwe instantie is helaas wat lastiger: Hij voert 'm uit als apache, niet als de goede gebruiker.

Logisch, maar hoe los ik dit op?

Tom

Acties:
  • 0 Henk 'm!

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Met su?

"Any sufficiently advanced technology is indistinguishable from magic."


Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
en hoe moet "apache" su uitvoeren? zonder het wachtwoord te weten?

su krijg ik wel aan de praat, maar ik krijg 'm niet zover dat 'ie ook inderdaad die gameserver opstart vanuit de goede gebruiker. En daar komt dan nog bij: su werkt niet omdat de shell op /sbin/nologin staat

[ Voor 61% gewijzigd door TvdW op 01-03-2009 16:28 . Reden: kleine verandering ]


Acties:
  • 0 Henk 'm!

Verwijderd

Gebruik sudo. Daarmee kun je bepaalde gebruikers bepaalde commando's als root laten uitvoeren.

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

setuid setten op een scriptje?

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
Verwijderd schreef op zondag 01 maart 2009 @ 16:40:
Gebruik sudo. Daarmee kun je bepaalde gebruikers bepaalde commando's als root laten uitvoeren.
dat is het probleem niet. ik kom via apache tot het root account maar vanaf daar kom ik niet verder: ik wil niet uitvoeren als root, maar als normale gebruiker.

Acties:
  • 0 Henk 'm!

Verwijderd

TvdW schreef op zondag 01 maart 2009 @ 16:42:

dat is het probleem niet. ik kom via apache tot het root account maar vanaf daar kom ik niet verder: ik wil niet uitvoeren als root, maar als normale gebruiker.
Dat kan ook, moet je even de documentatie lezen.

Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
Verwijderd schreef op zondag 01 maart 2009 @ 16:43:
[...]

Dat kan ook, moet je even de documentatie lezen.
Danku!
[root@tvdw ~]# sudo -u rick whoami
rick

Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Ik heb een soortgelijk projectje op het moment, en de enige relatief veilige manier om dit op te lossen, is om de SSH2 Module voor php te gebruiken, en met public+private key in te loggen, en zo de server te starten.

Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
kan niet, shell staat op /sbin/nologin

tevens weet ik ook niet alle wachtwoorden van de accounts op mijn server.

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Dat is nou net het idee van een public key ;).

ideetje om die shell dan te fixen en dan alleen public te allowen?

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
Boudewijn schreef op zondag 01 maart 2009 @ 17:07:
Dat is nou net het idee van een public key ;).

ideetje om die shell dan te fixen en dan alleen public te allowen?
dat maakt alles weer een beetje complex terwijl het ook makkelijk kan

Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
TvdW schreef op zondag 01 maart 2009 @ 17:09:
[...]

dat maakt alles weer een beetje complex terwijl het ook makkelijk kan
Geloof me, dit is de makkelijkste manier. Je wil dit echt niet via apache oplossen :)

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

TvdW schreef op zondag 01 maart 2009 @ 17:09:
[...]

dat maakt alles weer een beetje complex terwijl het ook makkelijk kan
Dit is juist makkelijk :P.

Wat jij aan het doen bent maakt de boel juist complex, ook ivm mensen die rommel via je apache uit gaan vreten.

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
nou, kijk, het idee is dus dat er later nog extra servers (fysieke) bij komen, zowel windows als linux. daarom werk ik via een php-script die alles afhandelt, deze kan dan bepalen hoe 'ie het doet, ipv alles via de panelserver te doen.

Tom

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Dat gaat niet werken, zie ook: http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html

Kun je niet iets als dit doen?
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//Do some important stuff

//Drop privileges (inspired by the book "The Art of Software Security Assessment")

/* 1. drop group privileges */
if (setgid(getgid()!=0)) /* getgid() returns the real group id (gid of the calling user) */
{
  /* error handling: unable to lose group privileges */
}

/* 2. drop supplemental group ids */
#ifdef HAVE_SETGROUPS
if (setgroups(0,NULL)!=0)
{
  /* error handling: Unable to clean supplemental group id list */
}
#endif

/* 3. drop user privileges */
if (setuid(getuid()!=0)) /* getuid() returns the real user id (uid of the calling user) */
{
  /* error handling: Unable to drop user privileges */
}

// Do some non privileged stuff.


Zie daarvoor:
http://nl2.php.net/posix_setgid
http://nl2.php.net/posix_setuid

[ Voor 64% gewijzigd door eghie op 01-03-2009 17:49 ]


Acties:
  • 0 Henk 'm!

  • TvdW
  • Registratie: Juli 2007
  • Laatst online: 30-08-2021
nee, het script voert standaard uit als apache en niet als root. geen rechten dus
Pagina: 1