Avatar billede tinepingvin Nybegynder
26. januar 2004 - 14:50 Der er 16 kommentarer og
1 løsning

hvordan mkdir i andres mapper

hej alle, jeg har en lækker stabil debianbox som jeg bruger til at hoste et par domæner. jeg bruger apache 1.3.29 og php 4.3.3, proftpd og courier til mail. alt er godt og virker suverænt.. (aner ikk hvorfor jeg nogensinde har spildt tid på windoze)

Proftpd og courier bruger begge en MySQL db til at validere brugere. (har hver deres tabel)
nu vil jeg gerne lave noget PHP der tilføjer, sletter og redigerer brugere i de respektive tabeller. -Den funtionalitet jeg er ude efter er noget lign. brugere selv kan oprettete mailadresser og FTP-konti.
PHP'en er i sig selv ikk så vanskelig, har næsten lavet det færdigt. -men jeg mangler lidt hælp til at få min PHP (uid/gid) www-data/www-data til at skrive "mkdir" kommandoen i couriers mailspool. Dem er jer der kender courier vil vide at man skal skrive en sti på formen /mailspool/domænenavn.tld/emailadresse/Maildir
Det er dette der volder lidt problemer, for at man kan det skal www-data jo have skriverettigheder til /mailspool/ diret. jeg har løst problemet ved at implementere mit root login i en SQL streng og eksekverer så mkdir med en shellkommando, men sikkerheden er jo ikk ligefrem i top der.

Er der nogen der kan fortælle mig lidt om hvordan jeg kan få PHP, sikkerhedsmæssigt forsvarligt, til at skrive i /mailspool/ og bagefter chowne diret til 888?
jeg forestiller mig noget ala' at oprette en gruppe og gøre ftp, mail og apache medlem af den, derefter chmodde så group kan skrive,  -men mangler lige lidt hjælp til at komme over den hurdle.

er der nogen som kender en fornuftig løsning?

200 point for et svar/løsning på dette meget specifikke problem.
Avatar billede mfalck Praktikant
27. januar 2004 - 12:38 #1
jeg har to ideer til måder du evt kan løse problemet på. Dit grundlæggende problem er at du i virkeligheden vil oprette et katalog i en anden brugers navn og det er kun root der kan ændre rettighederne. Den ene måde - som jeg ikke helt kan genenmskue om vil virke -  er at bruge sudo-kommandoen.

Den anden måde som jeg tror er nemmere at implementere er at lave en "kø" via en tabel i mysql, hvor du så kan sætte de kataloger ind som du vil have oprettet og derefter lave et cron-script (lavet i perl f.eks) som løber tabellen igennem og opretter katalogerne for dig (skal køres som root). Jeg forestiller mig noget ala

id  sti                status
1    /mailspool/per      0
2    /mailspool/bo      1
3    /mailspool/ib      5

hvor 0=oprettet (altså skal processeres) 1= oprettet og 5= slettet.
Avatar billede mfalck Praktikant
06. februar 2004 - 11:04 #2
kom du videre med det ?
Avatar billede tinepingvin Nybegynder
17. februar 2004 - 17:34 #3
sudo er en nitte så vidt jeg kan se.. giver vist for store sikkerhedshuller..

mangler lidt info på hvordan man får perlscript til at eksekvere et cronjob..

faktisk er jeg kommet så langt så det eneste jeg mangler er at får apache/php til at chowne en mappe til 888:888  -det volder en del kvaler.....

undskyld jeg har været så inaktiv.. fandt lige ud af exp's mailrobot røg i spamfolderen.... :-(
Avatar billede mfalck Praktikant
17. februar 2004 - 18:00 #4
ok - der er jo altid problemer som har en højere prioritet :-)

Et eventuelt perl-script skal kaldes fra crontab, ikke kalde cron :-)

hvis du har
#!<sti til perl>
sat i starten af dit  perlscript så kan du uden videre kalde det som et hvert andet shelljob.
Avatar billede tinepingvin Nybegynder
23. februar 2004 - 11:08 #5
hmm, jeg er stadig ikke helt med..  kan jeg gennem apache kalde et perlscript som chowner mappen til 888:888?

i min verden vil scriptet eksekveres som www-data:www-data og derfor kan det ikke chowne.......
Avatar billede mfalck Praktikant
23. februar 2004 - 11:14 #6
ja - det var derfor jeg foreslog en database som mellemled så kan du fra root's crontab foretage dine chmod's
Avatar billede tinepingvin Nybegynder
23. februar 2004 - 11:20 #7
hvordan forestiller dig dig et perl script skal se ud for at kunne eksekvere et crontab?
Avatar billede tinepingvin Nybegynder
23. februar 2004 - 11:20 #8
du dig ennda  -sorry for spam..
Avatar billede mfalck Praktikant
23. februar 2004 - 11:21 #9
perlscriptet skal ikke udføre crontab - det skal bare kaldes fra crontab og ligne et standard perl-script ... jeg skal gerne prøve at brygge et sammen i aften.
Avatar billede tinepingvin Nybegynder
23. februar 2004 - 11:22 #10
jeg kan godt lave et cronjob som chowner -R i /mailspool  hvert minut fx. men jeg synes jo det er lidt spild af resourcer og en lidet elegant løsning...
Avatar billede tinepingvin Nybegynder
23. februar 2004 - 11:23 #11
det fede ville være hvis jeg bare lavede crontabben og så kunne jeg køre et script eller noget i browseren som så eksekverede crontabben
Avatar billede mfalck Praktikant
23. februar 2004 - 11:26 #12
ja - det er jo derfor der skal være en database som du kan sætte de kataloger ind som du vil have chmod'et, så skal den blot tjekke for om der er kommet nye kataloger og evt køre en chmod på de nye
Avatar billede tinepingvin Nybegynder
23. februar 2004 - 11:30 #13
det er ikke så stort et prob at checke om der er kommet nye kataloger, jeg forestiller mig scriptet bliver implementeret sammen med resten af interfacet, så når jeg har oprettet mapperne, kører scriptet til sidst og chowner -R mappen til 888:888.. det er faktisk det eneste den skal gøre..  så det eneste jeg mangler at vide er faktisk hvordan man kan kalde et crontab gennem fx. php...
Avatar billede mfalck Praktikant
23. februar 2004 - 11:37 #14
du kan som sådan ikke kalde crontab - det er noget som bliver sat op til at køre på bestemte tidspunkter.
Avatar billede tinepingvin Nybegynder
23. februar 2004 - 11:40 #15
det er det jeg mener... troede det var den løsning du foreslog..

helt basalt er mit problem at jeg skal ha en SU til at chowne en mappe i realtime.
Avatar billede tinepingvin Nybegynder
25. februar 2004 - 12:41 #16
løsningen blev sudo som giver apache lov til at eksekvere et perl script som chowner.  vil du ha point?
Avatar billede mfalck Praktikant
25. februar 2004 - 13:13 #17
ok - sålænge det virker er alle vel glade :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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