/etc/passwd gebruiken in htaccess...

Pagina: 1
Acties:
  • 72 views sinds 30-01-2008

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Hallo,

Ik wil een directory op de server die in de www root staat alleen zichtbaar maken voor diegene die al kan inloggen op de server via bijvoorbeeld telnet of ssh.

Kan ik mbv .htaccess gebruik maken van het /etc/passwd bestand?
code:
1
2
3
4
AuthName "Vul hier uw gebruikersnaam en wachtwoord in"
AuthType Basic
AuthUserFile /etc/passwd                                             
require valid-user

werkt niet.

Weet iemand hoe dit kan of niet kan?

Verwijderd

Oftewel iedereen die /etc/passwd kan lezen kan iedereen zijn wachtwoord zien. Waarom gebruik je dan wactwoorden ?

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Ik wil een directory afschermen... en hij moet de gebruikers gebruiken die al op de linux bak staan? Weet iemand daar wat over?

Verwijderd

Hier staat een stukje over het 'syncen' van /etc/passwd en .htpasswd: http://industry.ebi.ac.uk/w2h/Doc/install.html
Ergens anders taat ook:
If you are using the server's /etc/passwd file (which limits access to legit usernames on the server created using the browser interface) then the AuthUserFile line of the .htaccess should be:

AuthUserFile /etc/passwd

Note: the above method is NOT recommended as it opens up the server to brute force password attacks through the web server. The method below provides better security.
overigens is dit gewoon een resultaat van google op "/etc/passwd" en ".htpasswd", dat kan jij ook hoor...;)

  • igmar
  • Registratie: April 2000
  • Laatst online: 10-05 13:53

igmar

ISO20022

Slagroom schreef op 05 september 2002 @ 11:19:
Hallo,

Ik wil een directory op de server die in de www root staat alleen zichtbaar maken voor diegene die al kan inloggen op de server via bijvoorbeeld telnet of ssh.

Kan ik mbv .htaccess gebruik maken van het /etc/passwd bestand?
code:
1
2
3
4
AuthName "Vul hier uw gebruikersnaam en wachtwoord in"
AuthType Basic
AuthUserFile /etc/passwd                                             
require valid-user

werkt niet.

Weet iemand hoe dit kan of niet kan?
Niet standaard nee. Wachtwoorden staan in /etc/shadow, en die is niet leesbaar voor non-root users.
Je kan /etc/shadow mergen met /etc/passwd (pwunconv), maar dit is alles behalve wijsheid.

  • capedro
  • Registratie: Oktober 2000
  • Laatst online: 26-04 15:52
je kan natuurlijk door middel van een script de passwords uit /etc/shadow halen en vervolgens een blacklist aanleggen van users die niet via de webserver er op mogen.

Als je dat doet door middel van een crontabje... dat 1 keer in de 24 uur wordt gestart... worden gelijk de passwords van de users gesynchroniseerd.

Ik heb al wel eens zoiets geschreven... maar heb het script niet meer.

Maar het is idd niet slim om direct te werken vanuit /etc/shadow. ;)

My weblog


  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Bovendien ... op een beetje systeem staan in /etc/passwd helemaal geen passwords.

Oh, was al gezegd zie ik net. :o

Everyone complains of his memory, no one of his judgement.


  • MadMurdock
  • Registratie: Oktober 2000
  • Niet online
capedro schreef op 06 September 2002 @ 12:30:
je kan natuurlijk door middel van een script de passwords uit /etc/shadow halen en vervolgens een blacklist aanleggen van users die niet via de webserver er op mogen...
Heeft iemand enig idee of zo'n script al bestaat?

Ik wil namelijk precies hetzelfde, maar kan me niet voorstellen dat zoiets niet al véél vaker gedaan is door mensen. Helaas zijn de resultaten van google niet echt bevredigend :|

  • Tomaat
  • Registratie: November 2001
  • Laatst online: 13-04 13:11
'cat /etc/shadow > /path/naar/users' is al iets waarmee je kan beginnen. en het geheel dan misschien door een pipe halen, om overbodige meuk eruit te filteren. dit kan d.m.v 'sed'.

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 09:15
Als je het veiliger wil doen zou je kunnen kijken naar een LDAP-server die alle authenticatie regelt, met PAM voor ssh-login en auth-ldap voor apache, maar dat is wel meer werk om op te zetten.

  • MadMurdock
  • Registratie: Oktober 2000
  • Niet online
Opzich wil ik (voorlopig iig) nog niet overstappen naar een LDAP-server, dus zo'n scriptje wat eea filtert, lijkt me goed genoeg; ik heb dus in die /etc/shadow nu regels als:
user:UFQ2NFNpbKAKE:12071:0:99999:7:::
Hierbij wil ik dus alles (op dezelfde lijn) na de 2de dubbele punt verwijderen, zodat het wordt:
user:UFQ2NFNpbKAKE
Als enige veiligheidsoptie wil ik eigenlijk de 'root' login er helemaal uithebben.

Opzich niet zo moeilijk zou ik zeggen; het zal ongetwijfeld kunnen met 'sed' maar ik ben er nog niet uit. Is er iemand die even een voorzetje kan geven?

Thx

Verwijderd

Ik heb gewoon een cronjob lopen die gewoon de user:pass elke minuut uit de /etc/passwd file ript en die in een andere file zet voor .htaccess. Werkt prima.

  • MadMurdock
  • Registratie: Oktober 2000
  • Niet online
Verwijderd schreef op 07 February 2003 @ 12:11:
Ik heb gewoon een cronjob lopen die gewoon de user:pass elke minuut uit de /etc/passwd file ript en die in een andere file zet voor .htaccess. Werkt prima.
en als je mij dan ook je scriptje zou willen laten zien, zou ik je erg dankbaar zijn ;)

Verwijderd

MadMurdock schreef op 07 februari 2003 @ 12:39:
[...]

en als je mij dan ook je scriptje zou willen laten zien, zou ik je erg dankbaar zijn ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/perl
# ultra 31337 login voor .htaccess scriptje
# door Alain op 10-03-2002
# die al 3 jaar geen per meer heeft aangeraakt :)
# revisie 1

# vars
$file = "/etc/shadow";
$htpasswd = "/opt/domain/www.eendomeinnaampjeblaat.nl/.klantenpw";
#uitgesloten usernames
@uitgesloten =
('root','bin','daemon','adm','lp','sync','shutdown','halt','mail','news','uucp','operator','games','ftp','mysql','gdm','nobody','sys','man','proxy','majordom','postgres','backup','msql','list','irc','gnats','techni','inetd','telnetd','listar','identd','www-data');

# functies

# Haal de usernames uit de lijst die geen check nodig hebben
sub check {
        local($username) = @_;
        $return = "true";
        $x = 0;
        while ($uitgesloten[$x]) {
                if ($uitgesloten[$x] eq $username) {
                        $return = "false";
                }
                $x++;
        }
        return "$return";
}

sub schrijfweg {
        local($passline) = @_;
        open (HT, ">>$htpasswd") || die print "het lukte niet om de file $file te openen...\n\n";
        print HT "$passline\n";
        close(HT);
}


# mainprog

# file ff leegmaken
open (HT, ">$htpasswd") || die print "het lukte niet om de file $file te openen...\n\n";
close(HT);

# file openen
open (PWD, "<$file") || die print "het lukte niet om de file $file te openen...\n\n";

# spul uit de file in een mooie array gooie...
@inhoud = <PWD>;

# zolang er nog wat in staat dan lusse we ff
while ($inhoud[$i]) {

        # let's split
        (@username[$i] , @password[$i]) = split (/:/, $inhoud[$i]);
        if (&check($username[$i]) eq "true") {
                &schrijfweg("$username[$i]:$password[$i]");
        }
        $i++;
}
exit();


Let niet op de code, die heb ik toendertijd ff snel gemaakt.

Verwijderd

Oude draad die wordt gekicked met een script request. Probeer eens zelf wat te maken, lees anders de Advanced Bash Scripting Guide maar eens door (te vinden op tldp.org). Deze gaat dicht.
Pagina: 1

Dit topic is gesloten.