У меня есть сервер vsftpd, настроенный на centos. Старые пользователи, перечисленные в logins.txt, могут войти в систему через браузер wb. Проблема в том, что когда я создаю нового пользователя, я не могу войти в систему 530 неверная ошибка входа.
Шаги, предпринятые для создания логина пользователя: добавьте имя пользователя и пароль в logins.txt, в каталоге пользователя я создаю файл конфигурации пользователя:
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_upload_enable=NO
dirlist_enable=YES
download_enable=YES
local_root=/var/ftpdata/user
write_enable=YES
и создайте домашний каталог в / var / ftpdata / user
после этого я выполняю команду для загрузки нового пользователя в базу данных
db42_load -T -t hash -f logins.txt vsftpd.login.db
и перезапустить службу
/etc/init.d/vsftpd restart
Таким образом, основная проблема заключается в том, что более старый пользователь может войти в систему, но вновь созданный пользователь не может войти в систему.
Вы добавляете пользователей в logins.txt. Но сервер использует vsftpd.login.db для проверки пароля. Я думаю, вам нужно повторно хешировать файл паролей после добавления нового пользователя.
Вы можете создать скрипт для автоматического добавления пользователей (convert.sh):
#!/bin/bash
db4.8_load -T -t hash -f logins.txt logins.db
chmod 600 logins.db
create.sh:
#!/bin/bash
USER=$1
PASS=$2
echo "$USER"+"$PASS"
#adding user and updating db
echo "$USER" >> logins.txt
echo "$PASS" >> logins.txt
db4.8_load -T -t hash -f logins.txt logins.db
chmod 600 logins.db
#creating homedir
mkdir /home/ftp/$USER
chown virtual:virtual /home/ftp/$USER
chmod 555 /home/ftp/$USER
#creating config
cd /etc/vsftpd/users_config/
touch "$USER"
echo "local_root=/home/ftp/$USER" >> "$USER"
echo "write_enable=YES" >> "$USER"
echo "anon_mkdir_write_enable=YES" >> "$USER"
echo "anon_other_write_enable=YES" >> "$USER"
echo "anon_upload_enable=YES" >> "$USER"
echo "chroot_local_user=YES" >> "$USER"
Установите разрешения и мод:
$ chmod 700 convert.sh
$ chmod 700 create.sh