Gå til innhold

Ubuntu: Opprette brukere til Apache og PHPMyAdmin


efikkan

Anbefalte innlegg

Hei

 

Jeg har nå satt opp en eldgammel pc med Apache og MySQL. Installasjonen har gått fint. Jeg får til å logge inn på den som FTP-server.

 

Men så lurer jeg på hvordan jeg kan få til slik at hver bruker får sin egen mappe til nettside, og egen bruker til PHPMyAdmin. Jeg har ikke funnet noen konfigurasjonsfil til dette. For eksempel vil jeg at bruker "bruker1" skal få "<server>/bruker1" som nettadresse, og samtidig "bruker1" som brukernavn til MySQL.

 

Inntil videre skal denne serveren bare brukes lokalt til nettsider og uttesting, men det skal nok være enkelt å åpne noen porter i routeren og bruke domene.

 

Pcen er en gammel PII 266 MHz, 96 MB ram, Creative nVidia CT6940 (eller noe sånt) 32MB AGP, 30GB Harddisk og CD-ROM. Den kjører Ubuntu 6.10, som jeg la inn gjennom nettet, siden den ikke kan starte fra CD.

 

Jeg takker for alle svar.

 

God jul,

hilsen

efikkan.

Lenke til kommentar
Videoannonse
Annonse

skal hver bruker få sin egen ftp-bruker også?

 

lag et vanlig bash/python/perl-script som oppretter mappen og legger til mysql-bruker.

 

lag mappe: mkdir /var/www/$brukernavn

hvor $brukernavn kommer som et parameter til scriptet. syntaks varierer selvsagt med valg av script-språk.

 

opprett sql-bruker:

logg inn i mysql som root. opprett bruker slik:

GRANT ALL PRIVILEGES ON *.* TO 'brukernavn'@'%'

Det vil gi bruker "brukernavn" alle rettigheter og mulighet til å logge inn fra hvor som helst. bytt ut ALL PRIVILEGES med rettighetene brukeren skal ha.

 

som sagt, hvordan du skal lage dette kommer an på valg av språk. jeg ville nok valgt python (personlig preferanse), men perl er fullt på høyde med python. Kan også gjøres med bash-scripting, men det har jeg null peiling på.

 

Når brukeren da har fyllt ut f.eks. et skjema på serveren med brukernavn, ønsket passord og sånn, så kjører du scriptet ditt slik:

<?php

exec('myScript.py'); // evnt. myScript.pl eller myScript.sh

?>

det finnes flere funksjoner som exec, bl.a. system(). Har ikke nøyanseforskjellene på alle sammen i hodet, men det kan du nok google deg til.

 

Lykke til!

Lenke til kommentar

Supert!

 

Hver bruker som jeg oppretter på pcen har automatisk FTP-konto.

 

Jeg har ikke tenkt at folk skal kunne opprette kontoer i hytt og pine, men det er greit at jeg kan opprette noen til familie.

 

Brukerene som er innlogget med FTP får tilgang til "$home", skal jeg da lage en snarvei til "/var/www/$brukernavn" for hver FTP-bruker?

Lenke til kommentar
alle brukere ligger vel i /home, så du kan vel bare gjøre
ln -s /var/www/$bruker /home/$bruker

 

eventuelt mounte mappene.

sudo mount /var/www/$bruker /home/$bruker -o bind

7557089[/snapback]

Jeg valgte mount. Men jeg måtte opprette en undermappe, slik at kommandoen ble: "sudo mount /var/www/$bruker /home/$bruker/www -o bind", for ellers ble hjemmemappen "ødelagt".

 

Men jeg har litt problemer. Jeg får full tilgang til "home"-mappen, men ikke til "www". Og i tillegg klarer Firefox å lese alle filene på pcen på en eller annen måte.

Lenke til kommentar

jaha, hva mener du med "ødelagt"? burde funke fint det? :dontgetit:

 

angående det at firefox klarte å lese alle filene:

 

finn

"DenyFilter \*.*/"

og legg til

"DefaultRoot ~"

under den. restart ftp-serveren. ellers vil alltid firefox ha tilgang til alt via file:///home/$bruker, hvis det var det du mente, men via ftp://localhost/$bruker skulle det da være sikret.

 

EDIT: det sistnevnte skal selvsagt gjøres i proftpd.conf fila.

 

EDIT:2 Du kjører vel proftpd? eller vsftpd?

Endret av hockey500
Lenke til kommentar

Nå virker begrensningen slik at jeg ikke kan se alle mappene.

 

Ja det er proftp, jeg følgte"ubuntuguide".

 

Men det er fortsatt slik at jeg kan gjøre hva jeg vil i "home"-mappen, men ikke i "home/www".

 

Da jeg mountet direkte til "$home", så fikk ikke Ubuntu tak i filene som egentlig ligger i "$home", og jeg fikk ikke logget meg inn.

 

Når jeg nå starter på nytt, vil mountingen til "$home/www" være der? Eller må jeg legge den i fstab?

Lenke til kommentar

Du må legge det i fstab ja.

 

Jeg ser ikke egentlig problemet med at du ikke får tak i filene som egentlig ligger der, for hvorfor skal det være behov for å ha noen andre filer der? den eneste grunnen til at /home/$user eksisterer og for å referere til /var/www/$user. det er ikke noen vits i å ha noen andre, vanlige filer der, er det det? :dontgetit:

 

Jeg har aldri gjor tdette selv med mount, men med "ln -s" har det fungert fint for min del.

Lenke til kommentar

ln -s funker fint her.

 

Angående fstab, muligheter:

1: Lag et oppstartsscript som fikser det ve oppstart

 

2: lag et script som legger det til ved slutten av filen hver gang en bruker registrerer seg.

<?php
  exec("echo \"var/www/{$user}/    /home/{$user}/    defaults    0    0\" >> /etc/fstab");
?>

noe sånt, sikkert feil :p problemet blir vel at kommandoen må kjøres som root. er ikke sikker på hvordan jeg ville løst det problemet, alternativet er å tillate at brukeren php-parseren bruker endrer fila. er ikke sikker på hva systemet vil si om du chmodder /etc/fstab til 777, kan godt hende det funker greit det og.

Lenke til kommentar

Lag et skript som krever å kjøres med sudo(sjekk etter SUDO-miljøvariabler(SUDO_USER)) og legg til en linje i /etc/sudoers som lar brukeren skriptet skal kjøres som kjøre skriptet.

 

Jeg foreslår å lage et bash(e.l.)-script som gjør det du ønsker, og siden kalle skriptet med sudo(exec("sudo /path/to/script")).

 

Edit:

Du burde også sjekke etter UID(=0).

Endret av comicz
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...