vsftpd как для локальных пользователей, так и для анонимного входа

Я пытаюсь настроить свой ftp-сервер (vsftpd), чтобы предоставить доступ как локальным, так и анонимным пользователям.

Я бы хотел, чтобы у локальных пользователей был доступ на запись к их домашнему каталогу, а анонимный вход - только для того, чтобы иметь доступ на чтение к каталогу, в который я могу перетаскивать файлы для загрузки остальным миром.

Во-первых, это даже возможное? Или все логины должны быть либо для чтения, либо для записи, но не для их комбинации?

Если это возможно, я не могу заставить это работать. Моя текущая настройка выдает ошибку «В доступе отказано», когда я пытаюсь войти в систему анонимно. Доступ для локальных пользователей работает так, как я хочу.

Может ли кто-нибудь определить, где я ошибаюсь или где я ошибаюсь в следующих настройках?

Ниже приведен каталог, настроенный для папок ftp. Путь - / var / ftp / (обратите внимание, что у локального пользователя здесь нет оболочки или определенного домашнего каталога, поэтому он был перемещен в общую папку ftp):

dr-xr-xr-x  2 ftp         ftp-users 4.0K Apr 17 13:19 anon
drwxr-xr-x  2 localuser   ftp-users 4.0K Apr 17 15:08 localuser

Анонимный пользователь не имеет права записи в свой домашний каталог, но локальный пользователь имеет. Существует группа ftp-users, в которую входят все пользователи ftp.

Ниже приведена выдержка из файла / etc / passwd для двух указанных выше пользователей:

ftp:x:109:115:ftp daemon,,,:/var/ftp/anon:/bin/false
localuser:x:1002:1002::/var/ftp/localuser:/bin/false

Ниже приведен файл vsftpd.config, который я ' m using (все комментарии удалены для краткости):

listen=NO
listen_ipv6=YES
anonymous_enable=YES
ftp_username=ftp
no_anon_password=YES
anon_root=/var/ftp/anon
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_max_rate=52000
local_enable=YES
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users
write_enable=YES
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Все пользователи, которые могут войти в систему, перечислены в userlist_file (включая ftp).

1
задан 17 April 2017 в 21:27
1 ответ

Мне удалось ответить на свой вопрос, немного поиграв. Я подробно объясню ответ для справки.

  1. Да, можно иметь привилегированных «именованных» пользователей и непривилегированных анонимных пользователей. Приведенный выше отрывок из конфигурационного файла позволяет такую ​​настройку.

  2. В файле конфигурации есть userlist_enable = YES и userlist_file = ... для управления именами пользователей, которые могут использовать FTP. Это не позволяет созданным по умолчанию пользователям (таким как pi в Raspbian) входить в систему с паролем по умолчанию, если он не был изменен. (Тем не менее, пароль по умолчанию, очевидно, следует изменить.)

  3. Чтобы использовать вышеуказанные директивы и разрешить анонимный вход в систему, пользователь «анонимный» должен быть назван в файле вместе с утвержденными именованными пользователями.

0
ответ дан 4 December 2019 в 04:59

Теги

Похожие вопросы