匿名用户
[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�CT�Cthash�Cflogin.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�Cd/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一下
测试