Linux 下vsftpd配置虚拟用户并为其划分工作根目录

  1. 下载vsftpd
    apt-get install vsftpd

  2. 配置vsftpd,在配置之前最后先备份一下vsftpd.conf

vi /etc/vsftpd/vsftpd.conf
所有配置信息如下:(读者可以直接copy,然后覆盖自己的vsftpd.conf内容)
# allow anonmy user login
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES

# local user setting
local_enable=YES
local_root=/home/ftp/public
local_umask=022
write_enable=YES

# allow ip to or not to connect this ftp(depends on the /etc/hosts.allow and /etc/hosts.deny)
tcp_wrappers=YES

chroot_local_user=YES
anon_root=/home/ftp/public

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=/tmp/banner
listen=YES
pam_service_name=vsftpd

max_clients=5000
max_per_ip=5000

# set virtual users
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/user_conf

#other settings
reverse_lookup_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
chroot_local_user=YES

3 . 划分vsftp工作目录

/home/ftp

4 . 创建虚拟用户用户名和密码文件

vi /etc/vsftpd/login.txt
username #奇数行是用户名
pwd #偶数行是密码

5 . 生成PAM认证的db文件

db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login

6 . 修改权限
chmod 600 /etc/vsftpd/vsftpd_login.db

7 . 修改PAM文件
vi /etc/pam.d/vsftpd
//注释掉所有配置信息,然后添加以下两行配置信息
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
//注意,网上有些配置在pam_userdb.so前面加上了/lib..的路径,本人开始也是这样做始终都登录不上,原因是各个机器路径也许不一样,读者需要看该文件之前的以pam开始的.so文件是否带路径(即已经被我们注释了的部分),如果那部分.so都带路径了则pam_userdb.so前面也要带相同的路径,否则不需要带路径

8 . 建立一个本地用户,虚拟用户通过映射到这个本地用户才能访问ftp文件服务器
useradd -d /home/ftp -s /sbin/nologin virtual
-d 指定ftp工作目录 -s指定该用户不能登录本机shell

9 . 修改ftp工作目录权限
chown virtual /home/ftp

10 . 修改vsftpd配置信息
添加一下信息:
local_enable=YES #由于虚拟用户是通过映射到本地用户virtual才能访问ftp服务器的,这个值必须为YES才能使得虚拟用户能够访问
pam_service_name=vsftpd
guest_enable=YES
guest_username=virtual #虚拟用户映射的本地用户
user_config_dir=/etc/vsftpd/user_conf #指定虚拟用户的配置文件夹

11 . 创建虚拟用户的配置文件

cd /etc/vsftpd/user_conf  #进入user_conf文件夹内
vi username 
#各种权限的配置大家看英文名应该都能懂什么意思,想给用户配什么权限就让该权限YES即可,下面给出的配置是给虚拟用户赋全部权限
local_root=/home/ftp/username
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES

12 . 重启vsftpd
service vsftpd restart

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章