Назад | Перейти на главную страницу

vsftpd: ** ТОЛЬКО ** доступ к FTP для локального пользователя?

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

Вы должны использовать виртуальных пользователей и быть осторожными с совпадением логинов между ними

[vsftpd.conf]/etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd #look here
guest_enable=YES
guest_username=ftp #carefull
user_sub_token=$USER
local_root=/var/ftpserver/ #careful
chroot_local_user=YES
hide_ids=YES
syslog_enable=YES
file_open_mode=0666
local_umask=0022

[vsftpd]/etc/pam.d/vsftpd
auth    required pam_pwdfile.so pwdfile /etc/vsftpd.passwd # htpasswd file
account required pam_permit.so

и создать htpasswd -c /etc/vsftpd.passwd username

Я не думаю, что использование виртуальных пользователей вообще необходимо. Обычные пользователи прекрасно подойдут.

Добавьте строку в / etc / shells, если ее там еще нет:

/bin/false

Для пользователей, которым вы хотели бы иметь возможность использовать FTP, редактировать / etc / passwd и менять свою оболочку (обычно по умолчанию с / bin / bash или / bin / sh) на / bin / false

например.:

Из этого:

jdoe:x:1000:1000:John:/home/fbh:/bin/bash

К этому

jdoe:x:1000:1000:John:/home/fbh:/bin/false

Таким образом, этот пользователь сможет войти в систему только через FTP.

Вкратце: используйте виртуальных пользователей.

http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/

http://eviladmin.org/tutorials/vsftpd.html