|
|||||||||||||||||||||||||||
Jeg skal måske omformulere mit spørgsmål lidt.
Når jeg har bedt brugeren om at indtaste uid og password, vil jeg gerne
kunne udtrække uid,
køre programmer osv. med den brugers rettigheder, via mit perl script.
Fuldstændig som hvis
jeg logger ind på Linux serveren via telnet. Så kan jeg f.eks. lave noget
der ser sådan ud:
print system('ls -la /home/homedir');
og se indholdet af mit homedir, fordi jeg ikke hedder nobody mere !!
Nu har jeg kun mulighed for at se brugeren "nobody", som du også siger.
Hvordan for jeg
ændret "nobody" til f.eks. "hauge". Kan det lade sig gøre, og hvad skal
der til ??? Kan Apache ikke håndtere dette ?? Når Apache kender IP
adressen på den der logger på, må den da kunne omsætte det til et uid !!
Er jeg helt på forkerte spor eller kan du hjælpe? Jeg tror jeg er med på
hvad du skriver, men
jeg synes ikke rigtig mit problem er løst
Til at tjekke hvem der "logget" ind, har jeg brugt variablen $<, det er
vel også ok ?
mvh
Kasper
Carsten Svaneborg wrote:
> Kasper Hauge wrote:
> > Jeg vil gerne kunne kende brugeren, der kommer ind på min Apache
> > web server via en browser.
>
> Du må bede brugeren om at indtaste information om hvem han/hun/den/der
> er. Eller også bruge cookies hvilket kan irriatere folk.
>
> Alt hvad et cgi script ved er IP addressen som browseren ringer fra.
> Hvis du kendte brugernavnet kunne du gætte email adressen, og så
> kunne websites høste email addresser og sælge dem til spammere.
>
> > hvor han siger jeg skal prøve med setuid.
> Set uid = set bruger information.
>
> Når du kører et program så udføres programmet med din bruger id
> (uid) og gruppe id (gid). Disse to tal bruges fx. til at finde
> ud af om du må skrive og læse i bestemte directories.
> Kører du altså mv så køres programmet med dine rettigheder,
> selvom mv programmet er eget af root og group root. Du kan
> selv se dette med ved at udføre ls -la `which ls`
>
> Hvor ` peger den modsatte vej af apostof ´.
>
> Hvis du setuid'er et program fx. mv så kan du udføre programmet
> med root rettigheder, fordi programmet er eget af root. Dvs. du
> som normal bruger kan slette kernel og alle andre brugeres data.
> Derfor er sut uid programmer en kilde til sikkerhedshuller.
>
> Når du laver et cgi script så vil det udføres af web deamonen
> altså httpd og den er typisk eget af brugerne ved navn nobody.
> Dvs. filer som cgi scriptet også er eget af nobody, og hvis
> nobody ikke har lov til at skrive samme sted som cgi scriptet
> så opstår der en fejl. Du kan så chmod ug+s program.cgi for at
> set uid'e programmet. (Se i apache's configurationsfiler for
> hvad bruger og gruppe det tilhører.)
>
> Det betyder at cgi scriptet udføres med alle dine rettigheder.
> Men det har også rettigheder til at ændre i dine konfigurations
> filer, og slette dit homedirectory.
>
> --
> Sometimes it's better to light a Carsten Svaneborg
> flamethrower than curse the darkness. sslug@sslug
> -- (Terry Pratchett, Men At Arms) Fight Bill - use Linux
|
||||||||||||||
|
||||||||||||||