Konfiguruję serwer z vsftpd, aby umożliwić wirtualnym użytkownikom dostęp do ich przestrzeni. Teraz działa w pełni, ale tylko z hasłami CRYPT. Więc
sudo htpasswd -c /etc/vsftpd/ftpd.passwd phpmyadmin
nie pozwoli mi się zalogować, ale
sudo htpasswd -c -d /etc/vsftpd/ftpd.passwd phpmyadmin
będzie.
/etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/vhosts/$USER.universe.local
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
/etc/pam.d/vsftpd
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd crypt=2
account required pam_permit.so crypt=2
Zainstalowałem apache2.4.3 ze źródła, a także PHP.
Rzeczy, których próbowałem:
- Google dużo
- Ustaw crypt = 2
- Zapytaj przyjaciół
- użyj SHA (też nie działa)
- zaktualizuj htpasswd i vsftpd
Walczę z tym od tygodnia, mam nadzieję, że pomożecie mi dalej
-m
wygeneruje skróty w stylu apache oparte na MD5 ($apr1$salt$hash
)Odpowiedzi:
htpasswd
generuje skróty MD5 w formacie Apache, które można zweryfikować, zaczynając od nich$apr1$
, ale PAM obsługuje tylko formaty implementowane przez platformęcrypt(3)
. W przypadku Glibc odpowiadałby (oparty na MD5)$1$
. Musisz tylko wygenerować hasło za pomocą innego narzędzia. Oto przykład:Możesz skopiować ten skrót do
ftpd.passwd
pliku wusername:hash
formacie i powinien on działać.źródło
$1$
skrótu hasła MD5, aż do prymitywu MD5, więc nie jest w pełnicrypt
świadomy.Rozwijając odpowiedź @ bonsaiviking, możesz wygenerować hasło openssl md5 i dodać je do pliku ftpd.passwd w jednym wierszu, używając trybu wsadowego htpasswd -b, oraz opcji zwykłego tekstu -p w następujący sposób:
Powyższy przykład (Ubuntu) tworzy również nowy plik ftpd.passwd, jeśli nie istnieje przy użyciu -c
źródło
Dwa wyświetlane polecenia są równoważne, ponieważ
-d
opcja mówi htpasswd, aby używała krypty, która jest domyślna dla większości systemów operacyjnych.Jeśli chcesz hash hashed z md5, powinieneś użyć
-m
Co pokazuje, że hasło testu zostało zaszyfrowane przy użyciu md5.
źródło
-d
.