Saya menyiapkan server dengan vsftpd untuk memungkinkan pengguna virtual mengakses ruang mereka. Sekarang sepenuhnya berfungsi tetapi hanya dengan kata sandi CRYPT. Begitu
sudo htpasswd -c /etc/vsftpd/ftpd.passwd phpmyadmin
tidak akan mengizinkan saya masuk, tetapi
sudo htpasswd -c -d /etc/vsftpd/ftpd.passwd phpmyadmin
akan.
/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
Saya menginstal apache2.4.3 dari sumber dan juga PHP.
Hal yang sudah saya coba:
- Google banyak
- Set crypt = 2
- meminta teman-teman
- gunakan SHA (tidak berfungsi baik)
- perbarui htpasswd dan vsftpd
Saya telah berjuang dengan ini selama seminggu sekarang, saya harap kalian dapat membantu saya lebih lanjut
-m
akan menghasilkan hash ala apache berbasis MD5 ($apr1$salt$hash
)Jawaban:
htpasswd
menghasilkan hash MD5 dalam format Apache, yang dapat Anda verifikasi dengan melihatnya$apr1$
, tetapi PAM hanya mendukung format yang mengimplementasikan implementasi platform Andacrypt(3)
. Untuk Glibc, yang setara (berbasis MD5) adalah$1$
. Anda hanya perlu membuat kata sandi dengan alat yang berbeda. Ini sebuah contoh:Anda dapat menyalin hash ini ke
ftpd.passwd
file Anda dalamusername:hash
format, dan itu akan berfungsi.sumber
$1$
hash kata sandi MD5, sampai ke primitif MD5, sehingga tidak sepenuhnyacrypt
menyadari.Memperluas jawaban @ bonsaiviking, Anda dapat membuat kata sandi openssl md5 dan menambahkannya ke file ftpd.passwd dalam satu baris menggunakan mode batch htpasswd -b, dan plaintext -p opsi sebagai berikut:
Contoh di atas (Ubuntu) juga membuat file ftpd.passwd baru jika tidak ada menggunakan -c
sumber
Dua perintah yang Anda tampilkan adalah sama karena
-d
opsi memberitahu htpasswd untuk menggunakan crypt yang merupakan standar untuk sebagian besar sistem operasi.Jika Anda ingin kata sandi di-hash dengan md5 maka Anda harus menggunakannya
-m
Yang menunjukkan bahwa kata sandi tes telah dienkripsi menggunakan md5.
sumber
-d
.