Cenos5.8rpm包安装vsftp

匿名用户

[root@localhost~]#rpm-qa|grepvsftp检查是否安装

如果没有安装则安装

#rpm-ivh/mnt/CentOS/vsftpd-2.0.5-24.el5.i386.rpm

启动服务

#servicevsftpdstart

编辑配置文件使匿名用户可以上传、下载

#vim/etc/vsftpd/vsftpd.conf

修改下列选项

anonymous_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES#容许匿名用户上传文件

anon_mkdir_write_enable=YES#容许匿名用户建立目录

anon_other_write_enable=YES#容许匿名用户除了新建和上传外的其他权限如:删除、更名。这条不用写。需要删除文件权限可以写上。

主要是这几条,其他的基本不用动。

赋予ftp目录足够的权限

[root@localhost~]#chmod777/var/ftp/pub/

[root@localhost~]#ll-d/var/ftp/pub/

drwxrwxrwx5rootroot4096Jun1100:02/var/ftp/pub/

测试

关闭selinux

如果不能下载则在配置文件中加入:

anon_umask=022

改变匿名用户的下载默认路径

如果是默认安装vsftpd的话,以下是一些文件的位置约定:
/usr/sbin/vsftpd----VSFTPD
的主程序
/etc/rc.d/init.d/vsftpd----
启动脚本
/etc/vsftpd/vsftpd.conf----
主配置文件
/etc/pam.d/vsftpd----PAM
认证文件
/etc/vsftpd.ftpusers----
禁止使用VSFTPD的用户列表文件
/etc/vsftpd.user_list----
禁止或允许使用VSFTPD的用户列表文件
/var/ftp----
匿名用户主目录
/var/ftp/pub----
匿名用户的下载目录

如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf,加入如下三行:
local_root=/
这行不用写
chroot_local_user=YES
anon_root=/

local_root
表示使用本地用户登录到ftp时的默认目录
anon_root
表示匿名用户登录到ftp时的默认目录

你上面的chroot_list_file是设定锁定登陆用户在其home目录的列表,要在chroot_list_enable=YES情况下才生效。

真实配置

#vim/etc/vsftpd/vsftpd.conf加入

anon_root=/var/vsftp/

#local_root=/var/vsftp/可不写

chroot_local_user=YES

虚拟用户配置(共用配置文件)

在虚拟用户使用vsftpd服务器之前,要对服务器进行配置,主要包括如下几个步骤:

1)生成虚拟用户口令库文件。

2)配置生成vsftpd的认证文件。

3)建立虚拟用户访问所需要的目录并且设定相应的访问权限。

4)建立配置文件。

5)重新启动vsftpd服务器。

下面是完成上述五个步骤的基本命令和过程,如下所示:

生成虚拟用户口令库文件,按照格式编辑口令文件。单数行为用户名,偶数行为用户口令

#vilogin.txt

Jim用户名

123456口令

tony

123456

配置生成vsftpd的认证文件

//使用db_load命令生成口令库文件

#db_load–T–thash–flogin.txt/etc/vsftpd/vsftpd_login.db

//修改该口令库文件的权限

#chmod600/etc/vsftpd/vsftpd_login.db

//编辑虚拟用户所需的PAM配置文件

#vi/etc/pam.d/vsftpd

//在该文件中加入如下两行注释掉其它行,并且保存后退出

authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login

accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login

建立虚拟用户访问所需要的目录并且设定相应的访问权限

#useradd–d/home/ftpvirtual

#chmod700/home/ftp

vsftpd的主配置文件进行配置

//为了保证安全,首先生成该文件的一个备份,然后进行修改

#cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak

#vi/etc/vsftpd/vsftpd.conf

//配置相关选项如下所示

anonymous_enable=NO是否允许匿名登录

local_enable=YES是否允许本地用户虚拟用户也是映射到本地的一个用户登录所以为yes

write_enable=YES写的权限

local_umask=022

anon_upload_enable=YES上传权限

anon_mkdir_write_enable=YES新建目录权限

listen=YES

tcp_wrappers=YES//支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)

guest_enable=YES启用虚拟用户

guest_username=virtual将虚拟用户映射为本地的virtual用户

pam_service_name=vsftpd指定PAM配置文件为vsftp

chroot_local_user=YES将本地用户锁定在主目录中,不允许切换到上一级目录中

anon_world_readable_only=NOno可下载yes不可下载

anon_other_write_enable=YES删除重命名文件

重新启动vsftpd服务器

#servicevsftpdrestart

测试前记得关闭防火墙和selinux

也可以单个用户设置配置文件用来不同用户给予不同的权限(单独配置文件)

首先建立虚拟用户对应的访问目录(目录名字我们设置为与用户名相同)

[root@localhosthome]#mkdirtony

[root@localhosthome]#chownvirtual:virtualtony/设置文件夹的属主属组

[root@localhosthome]#chmod700tony/设置访问权限

设置用户配置文件夹

root@localhostvsftpd]#mkdiruser_conf

进入用户配置文件夹设置相应的用户配置文件(用户的配置文件我们设置为和用户名相同)

[root@localhostuser_conf]#vimtony具体配置

local_root=/home/tony(此目录可以设置成任何新建的目录要注意virtual对此目录的权限)

anon_world_readable_only=NO写为yes下载文件将报错

write_enable=YES写权限

anon_upload_enable=YES上传

anon_mkdir_write_enable=YES新建目录

anon_other_write_enable=YES删除重命名的权限

下面配置全局vsftpd的配置文件

[root@localhostuser_conf]#vim/etc/vsftpd/vsftpd.conf

anonymous_enable=no是否允许匿名用户

local_enable=YES是否允许本地用户虚拟用户也是映射到本地的一个用户登录所以为yes

write_enable=YES写的权限

local_umask=022

listen=YES

user_config_dir=/etc/vsftpd/user_conf虚拟用户单独的配置文件路径

pam_service_name=vsftpd指定PAM配置文件为vsftp

guest_enable=YES启用虚拟用户

guest_username=virtual将虚拟用户映射为本地的virtual用户

chroot_local_user=YES将本地用户锁定在主目录中,不允许切换到上一级目录中

[root@localhostuser_conf]#servicevsftpdrestart

虚拟账号添加新的账号后需要重新db_load一下

测试