映射个虚拟用户
创建个用户,不让他登录
useradd virftp -s /sbin/nologin
创建存放虚拟用户用户和密码的文件
vim /etc/vsftpd/vsftpd_login
写入
test1
111222aaa
test2
aaa111ddd
给这个文件授权,
chmod 600 /etc/vsftpd/vsftpd_login
vsfptd 使用的密码文件肯定不是明文的,需要生成对应的库文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
创建虚拟账号
创建虚拟账号配置文件存放目录
mkdir /etc/vsftpd/vsftpd_user_conf
cd !$
创建和用户名对应的配置文件
vim test1
添加
local_root=/home/virftp/test1 anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=50000
local_root 该用户的家目录
anonymous_enable用来限制/允许匿名账号登录,no为不允许
write_enable=YES 表示可写
local_umask 指定 umask 值
anon_upload_enable 是否允许匿名账号上传文件
anon_mkdir_write_enable 是否允许匿名账号可写
创建该用户的家目录,更改所属主和所属组
mkdir /home/virftp/test1
chown -R virftp:virftp /home/virftp/test1
修改认证相关的配置文件
vim /etc/pam.d/vsftpd
在最开头添加两行
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
Linux 为 32 位系统,库文件路径为/lib/security/pam_userdb.so
系统为 64,库文件是在/lib64/security/pam_userdb.so
修改全局配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES改为anonymous_enable=NO 匿名用户是否可登录
local_enable=YES改为local_enable=NO 本地用户是否可登录,如果虚拟机改为YES
#anon_upload_enable=YES改为anon_upload_enable=NO 匿名用户是否可上传
#anon_mkdir_write_enable=YES改为anon_mkdir_write_enable=NO 匿名用户是否运行创建写入
在最后添加
guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf
重启vsftpd
/etc/init.d/vsftpd restart
测试
如果忘了密码 查看一下test1的密码
cat /etc/vsftpd/vsftpd_login
在家目录创建个文件和目录
mkdir /home/virftp/test1/111
touch /home/virftp/test1/222.txt
登录
lftp test1@127.0.0.1
可以浏览器输入
ftp://192.168.1.117/
输入账号密码
进入ftp