很早的一个日志了,从自家的QQ上,查看总不方便,搬家的。
安装完 centos后
安装vsftpd
yum install vsftpd
安装伯克利数据库工具
yum install db4 db4-utils
进入root目录下,建立文件login.txt
内容类似:奇数行为用户名,偶数行为密码
tralin_user1
123456
tralin_user2
8888
然后产生认证数据库
db_load -T -t hash -f /root/login.txt /etc/vsftpd/login.db
建立pam认证,在/etc/pam.d文件夹中,创建tralinftp文件,在这里输入
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
最后的login为刚才的数据库的名字,不带db后缀。
建立ftp目录
如下 /home/ftp
然后改组和用户的所有权属性,
建立虚拟用户及其用户组
useradd virtual
更改目录属性
chown -R virtual:virtual /home/ftp
更改后,通过ls -ld /home/ftp,可以查看验证权限。
修改主配置文件,用vi打开/etc/vsftpd/vsftpd.conf文件,加入
pam_service_name=tralinftp (去找自定义的认证数据库)
guest_enable=YES
guest_username=virtual (此处的用户名应和刚才改权限的用户名一致 )
启动服务测试 service vsftpd start
用匿名用户登录一下,测试成功否?
如果SElinux开启的话,这里的匿名用户测试,将失败,
查看SElinux,是否开启
getenforce
如果为Disable则为关闭,如果为Enforcing 则为开启
关闭SElinux的方法为
修改 /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled
重启生效
如不重启可以用 setenforce 0 临时测试
如果iptables开启,也将导致失败,可以将iptables服务关闭
service iptables stop
做虚拟用户的权限
改vsftpd.conf文件,
user_config_dir=/etc/vsftpd/vsftpd_user_conf
这说明这个配置文件是在一个文件夹中,这个文件夹的名字是vsftpd_user_conf
在这个vsftpd_user_conf的文件夹下,建立与账号同名的文件,如tralin_staff1,tralin_staff2
再在每个文件中(tralin_staff1,tralin_staff2),分别建立权限定义。
如:
local_root=/home/ftp
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes
(这个配置为可读写建文件夹的,这里的anon的匿名参数必须带,估计它的配置文件中是把这个虚拟用户当成了匿名的一种了)
local_root=/home/ftp
anon_world_readable_only=no
(这个配置为只读的)