vsftp因为公司时不时要用,也不是经常弄ftp,不常用就老是忘记有些东西,所以就在网上查些资料和自己遇到的一些问题结合起来写一个文档,以后需要使用ftp的时候搭建比较方便,使用虚拟用户不用担心用户登录服务器,你想让他在那个目录呆着就在那,而且修改权限方便,每个用户需要什么权限可以不同的修改,可以满足多方面的需要,所以推荐使用虚拟用户。第一次写博文,如有错误请指教!
1、查看安装包
[root@localhost ~]# rpm -qa | grep vsftpd
vsftpd-2.0.5-24.el5_8.1
[root@localhost~ ]# rpm -qa | grep db
db4-devel-4.3.29-10.el5_5.2
gdbm-1.8.0-26.2.1.el5_6.1
dbus-glib-0.73-10.el5_5
db4-java-4.3.29-10.el5_5.2
gdbm-1.8.0-26.2.1.el5_6.1
dbus-devel-1.1.2-16.el5_7
dbus-glib-0.73-10.el5_5
dbus-devel-1.1.2-16.el5_7
gdb-7.0.1-42.el5.centos.1
db4-devel-4.3.29-10.el5_5.2
dbus-libs-1.1.2-16.el5_7
dbus-glib-devel-0.73-10.el5_5
db4-tcl-4.3.29-10.el5_5.2
gdbm-devel-1.8.0-26.2.1.el5_6.1
dbus-python-0.70-9.el5_4
dbus-libs-1.1.2-16.el5_7
db4-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-utils-4.3.29-10.el5_5.2
gdbm-devel-1.8.0-26.2.1.el5_6.1
dbus-1.1.2-16.el5_7
dbus-x11-1.1.2-16.el5_7
如果没请安装yum install vsftpd
yum install db
2、建立虚拟用户
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# touch login.txt
[root@localhost vsftpd]# vi login.txt
创建账户密码
test 账户
123456 密码
vsftpd 账户
123456 密码
3、生成虚拟用户口令验证文件
把刚添加的login.txtt虚拟用户口令转换成系统的口令认证文件
[root@localhost vsftpd]# db_load -T -t hash-f /etc/vsftpd/login.txt /etc/vsftpd/account.db
找不到db_load
yum install db4*
修改数据库文件权限
[root@localhost vsftpd]# chmod 600account.db
4、编辑PAM认证
[root@localhost vsftpd]# cd /etc/pam.d/
[root@localhost pam.d]# touch vsftpd.vu
[root@localhost pam.d]# vi vsftpd.vu
加入如下两行:(32位系统在lib下;64位系统用lib64下)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/account
5、建立本地映射用户并设置宿主
[root@localhost home]# useradd -d/home/ftpsite -s /sbin/nologin vsftp
[root@localhost home]# chmod 700/home/ftpsite/
6、修改主配置文件vsftpd.conf
[root@localhost vsftpd]# vi vsftpd.conf
anonymous_enable=NO 禁止匿名访问
local_enable=YES
write_enable=YES
local_umask=022 本地用户权限设置,022为755权限(777-022)
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_port=21
pam_service_name=vsftpd.vu pam验证
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES YES为开启虚拟用户
guest_username=vsftp 将虚拟用户映射为本地用户vsftp
user_config_dir=/etc/vsftpd/vsftpd_user_conf 虚拟用户配置文件位置
virtual_use_local_privs=NO 虚拟用户权限与本地用户权限修改 YES为与本地用户相同
pasv_min_port=50000
pasv_max_port=60000
pasv_enable=yes
max_clients=200
max_per_ip=10
idle_session_timeout=600
ftpd_banner=Welcome to FTP service
7、创建各个虚拟用户自身的配置文件
[root@localhost vsftpd]# mkdir vsftpd_user_conf
创建与用户名相同配置文件并写入相应配置
[root@localhost vsftpd_user_conf]# touch test vsftpd
[root@localhost vsftpd_user_conf]# vi test
local_root=/home/ftpsite/test/ 虚拟用户家目录
write_enable=YES
anon_umask=000 虚拟用户权限设置(777-000),默认目录为777,文件为666
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
并创建虚拟用户家目录 mkdir /home/ftpsite/test
[root@localhost vsftpd_user_conf]# vivsftpd
local_root=/home/ftpsite/vsftpd/
write_enable=YES
anon_umask=022 虚拟用户权限设置(777-022),默认目录为755,文件为644
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
创建虚拟用户家目录 mkdir /home/ftpsite/vsftpd
8、重启服务测试连接
service vsftpd restart
注:用户权限
如果使用vsftp的是本地用户则要修改配置文件中的local_umask 的值如果使用vsftp的是虚拟用户则要修改配置文件中的anon_umask 的值
如果配置的umask值为000,则默认目录权限为777,默认文件权限为666
如果配置的umask值为047,则默认目录权限为730,默认文件权限为620