FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Flitig postare
|
Jag har läst på lite i den medföljande manualen:
http://festiz.com/manual/howto/auth.html Jag driver ett litet webhotell för nära och kära, jag vill att de ska kunna logga in på sin lilla egna webbplats där de kan kontrollera lite grejer som har med sin websida att göra, saken är att jag hade tänkt använda samma användarnamn/lösenord som de har som shellanvändare för ssh och sftp. Någon osm vet hur detta skulle kunnga genomföras? Just nu sitter jag och funderar på om det går att använda /etc/shadow som lösenordsfil vilken är den som skalet Bash använder vid inloggning av de tidigare nämnda tjänsterna. |
|||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
Det går att göra ganska enkelt om du använder PHP. Du har funktionen crypt(). Om du vill använda shadow så kan du helt enkelt opna filen och söka efter din "användare".
Exempelvis kod nedan: $lines = file(/etc/shadow); foreach ( $lines as $line ){ $line = explode(":",$line); if ( $line[0] == $_POST['username'] ) { $password = $line[1]; $userpw = $_POST['password']; $userpw = crypt($userpw,$password); if ( $userpw == $password ){ $_SESSION['username'] = $_POST['username']; } else { print "Passwords don't match"; } OSV OSV. Alltså använd funktionen crypt och använd din shadowlösenord som salt. Då ska du få samma krypterade sträng som shadowlösenordet ifall det är korrekt lösenord. Det är ett sätt. Eventuellt skulle man kunna fixa det genom apache-autenticering mha .htaccess men jag har för mig att htpasswd använder sig av något annat än vanligt crypt. Jag är dock osäker så det vill jag lämna dig som en övning att ta reda på. Personligen gillar jag mer att implementera autenticering i PHP eftersom det ser snyggare ut än att den ruta poppar upp. Dessutom har du då bättre kontroll över hur lång sessionen får vara osv. /Zoran |
|||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Flitig postare
|
Jag skulle gärna använda detta sätt om det inte vore för att jag vill skydda filer som är tillgängliga direkt via URL, endast inloggade användare ska få tillgång till dessa, det är därmed mycket enklare om man på något sätt kunde lösa detta med att apache läser /etc/passwd.
|
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
Citat:
Nu har jag kollat manualsidan för htpasswd och uppenbarligen så stödjer den både md5 kryptering samt vanlig crypt() kryptering. Med andra ord innebär det att du kan skapa en egen password-fil som innehåller lösenorden från /etc/shadow. Problemet att få apache att läsa /etc/shadow är att man vanligtvis inte kan komma åt shadow som vanlig användare. Då måste du låta apache-användaren vara med i root-gruppen och sätta 440 rättigheter på /etc/shadow istället för 400. Jag tror det är enklast att ha ett cron-jobb på root-kontot som synkar lösenorden i din apache-pass-fil från /etc/shadow. /Zoran |
|||
![]() |
![]() |
Svara |
|
|