Kom ihåg mig?
Home Menu

Menu


Autentisering med /etc/shadow

Ämnesverktyg Visningsalternativ
Oläst 2004-06-28, 15:51 #1
festizs avatar
festiz festiz är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2004
Inlägg: 302
festiz festiz är inte uppkopplad
Flitig postare
festizs avatar
 
Reg.datum: Jun 2004
Inlägg: 302
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.
festiz är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-06-28, 16:28 #2
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
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
zoran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-06-28, 16:47 #3
festizs avatar
festiz festiz är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2004
Inlägg: 302
festiz festiz är inte uppkopplad
Flitig postare
festizs avatar
 
Reg.datum: Jun 2004
Inlägg: 302
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.
festiz är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-06-28, 17:19 #4
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Originally posted by festiz@Jun 28 2004, 16:47
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.
Okej då förstår jag.

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
zoran är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 05:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017