Gå til innhold

screen + php shell_exec()


Anbefalte innlegg

Hei. Har et system hvor jeg starter en applikasjon gjennom php, ved å bruke et php-script som ser slik ut:

&--#60;?php
shell_exec("./fil.sh");
?&--#62;

 

fil.sh:

#!/bin/bash
echo "Starting proggy"
sleep 1
cd folder
screen -A -m -d -S proggy ./proggy

 

Problemstilling: Når den startes fra browseren (gjennom php) så finner jeg ikke prossessen når jeg skriver "screen -ls", eller "sudo screen -ls" i kommandolinja. Men, prossesen kjører - Jeg finner den i "top" (oversikt over prosesser). Men, da den startes gjennom php så går det under en "virtuell bruker" "www-data".

 

//Edit: Fikk tilgang til screen sessjonen ved å logge inn som "www-data", men blir noe klumesete å gå gjennom en annen bruker, (alt skal tross alt skje gjennom php/browseren, til slutt).

 

- Hvordan kan screen startes opp fra browseren under brukeren min (ikke root, eller www-data)? Er dette mulig på enkelt vis?

Endret av warpie
Lenke til kommentar
Videoannonse
Annonse

Er det hele php-scriptet? Hvorfor i all verden ønsker du å gå via php for å gjøre det?

 

Edit: ah, starte gjennom browser.

 

Det du kan gjøre er å gi www-data sudo, men det er en ganske dårlig idé tbh. Hva prøver du å oppnå?

 

Såvidt jeg vet kan du konfigurere sudo til å gi www-data rettigheter til å kjøre ting som din bruker - det hadde gitt deg resultatet du er på jakt etter.

Endret av Lycantrophe
Lenke til kommentar

Legg fil.sh i PATH for www-data. (ie, /usr/bin/)

Gi www-data sudo tilgang til KUN den kommandoen, uten passord. (Du må beskytte adgangen til å kunne kjøre php scriptet på egen hånd via htaccess e.l.)

shell_exec("sudo fil.sh");

 

su &--#60;brukernavn&--#62; -c 'screen -A -m -d -S proggy /path/til/proggy'

 

Skulle fikse biffen. Benytter samme metode selv for å gi enkel beskyttet tilgang til å restarte enkelte prosesser uten å måtte gi ssh tilgang.

Endret av ShadowMaster
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...