Avatar billede aggemamme Nybegynder
11. august 2002 - 01:23 Der er 13 kommentarer og
1 løsning

Køre system()-ting som anden bruger?

Hej

Jeg har brug for at kunne ændre httpd.conf vha noget PHP (meningen er at folk selv skal kunne ændre sit virtualhost). Problemet er at PHP ikke har skriveadgang til httpd.conf (hvilket jo selvfølgelig er en fordel :), men i dette tilfælde har jeg brug for at et bestemt script gerne må kunne ændre i systemfiler (httpd.conf og jeg får senere brug for at kunne ændre sendmails konfiguration).

Hvordan autoriserer jeg mig overfor systemet med PHP?

Jeg har selv tænkt følgende tanker:

1) su-kommandoen - men det kan jeg ikke få til at virke, fordi den spørger efter kodeordet efter man har indtastet kommandoen
2) sudo - men dette program spørger også efter et kodeord
3) I httpd.conf kan man i et virtualhost lade visse vhosts kunne køre php som "ikke-safemode". Kan man også lade et virtualhost køre php som en anden bruger?

Jeg håber at det er forståeligt, ellers sig til :)
Avatar billede BacceDK Juniormester
11. august 2002 - 01:28 #1
hmm du kunne jo gøre det sådan at den bestilling som skulle skrives i din conf gemte du i en database
og så laver du php scriptet som skal skrive til din conf og kalder den så via cron så har du skrive adgang da det så er root der udfører den og ikke apache som det jo ellers ville være
Avatar billede aggemamme Nybegynder
11. august 2002 - 01:31 #2
Ja, det har jeg tænkt over. Men jeg synes ikke det er en god løsning, da  man så skal "vente" på cron...
Avatar billede BacceDK Juniormester
11. august 2002 - 01:33 #3
hmm du kunne jo bare sætte den til at køre tit så er der ikke meget vendte tid
meen under alle omstændighedder
du ville arldrig kunne gøre det fra apache, den har jo sine rettighedder lige meget hvad du skriver
Avatar billede aggemamme Nybegynder
11. august 2002 - 01:40 #4
Der ville stadig være ventetid. Er det ikke muligt at der findes et program som "sudo" men hvor det ikke kræves, at passwordet indtastet bagefter? Altså, et program ligesom sudo, men hvor passwordet kan angives i kommandolinien

sudo -p Password -u root 'rm -r /'

Det kunne nemlig være ræve-smart :)
Avatar billede BacceDK Juniormester
11. august 2002 - 01:43 #5
naa det tror jeg sku ikke
meen helt erligt hvad er der galt med at vendte 2 min fek.s ???
det kan jeg ikke se noget galt i
en anden ting du kunne (som jeg bestemt IKKE anbefaler) er at give alle skrive rettighedder på din httpd.conf
meeen det gør det utrolig usikkert
Avatar billede aggemamme Nybegynder
11. august 2002 - 01:45 #6
Problemet er ikke lige præcis ovenstående situation, men hvad nu hvis et script fx skal læse /etc/passwd ? Skal brugeren vente 2 min før siden vises -

eller hvis et program skal stoppes af en admin - sendmail fx - der skal det jo også helst ske prompte...
Avatar billede aggemamme Nybegynder
11. august 2002 - 01:45 #7
Skriverettigheder til httpd.conf - den løsning vil jeg nok ikke vælge :)
Avatar billede BacceDK Juniormester
11. august 2002 - 01:48 #8
hmm nu er jeg slet ikke med
snakker vi ikke om at skive til httpd.conf ???
hvad har sendmail og /etc/passwd med det at gøre ??
dine virtualhost's kommer jo ikke derind og står
vil du venligst forklare lidt nermere ??
Avatar billede BacceDK Juniormester
11. august 2002 - 01:54 #9
"men hvad nu hvis et script fx skal læse /etc/passwd ? Skal brugeren vente 2 min før siden vises"
nixx hvis du ikke har safemode på i php kan folk sagtens læse denne fil...!
"eller hvis et program skal stoppes af en admin - sendmail fx - der skal det jo også helst ske prompte"
hmm hvorfor skal sendmail lukkes fra det ene tidspunkt til det andet ??
Avatar billede aggemamme Nybegynder
11. august 2002 - 02:09 #10
Jeg vil lave en "admin suite"-side for admins, hvor man kan styre mange ting på serveren. Hvis du kender webmin, kan du forestille dig en "mini-webmin".

Det kan være at Apache skal genstartes, et alias i sendmail eller noget helt tredje. Derfor søger jeg en "all-round" løsning til atkunne udføre kommandoer som root.

Men ellers må jeg lave et cron-script der hvert minut udfører "nyeste kommandoer" hentet fra en database.

Her har du nogle point.
Avatar billede BacceDK Juniormester
11. august 2002 - 02:13 #11
ok ok
men for at oprette / slette brugere i email behøver du jo ikke root adgang
der er vist op til flere admin programmer til både at oprette emails og slette dem samt vidersendelse og autosvar og hvad det ellers hedder, så den kan man rede
det er mere det med skriveriet og sel.f genstart af apache som har problemet

p.s takker for point...!
Avatar billede aggemamme Nybegynder
11. august 2002 - 02:34 #12
Jep, apache skal jo genstartes bagefter.

Jeg lærte faktisk lidt af dette, jeg troede at /etc/passwd kun var læselig af super-users

men master-pw-databasen er vel kun root...?
Avatar billede BacceDK Juniormester
11. august 2002 - 11:25 #13
ja men det er jo stadig ikke noget problem
du sætter cron til at køre hvert andet minut
den smidder det ind som skal skrives og derefter genstarter httpd d.v.s det vil altid ske inden for 2 min
på den tid når man jo dårligt nok at kunne teste det om det virker, sååå den vil stort set altid være som den skal
skriv eventuelt en email nå dette gøres og skriv at der kan altså gå op til 2 min før det er aktivt.
tænk på de webhostere der kører med win maskine, der er nogen der har en vendte tid på op til 24 timer, da det mange gange kræver at hele maskinen skal genstartes og det gør man jo ikke i utide da det sikanerer de allerede eksisterende brugere
Avatar billede aggemamme Nybegynder
12. august 2002 - 21:34 #14
Jamen nu er det ikke en windows-maskine :)

Men jeg finder på noget med cron
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester