ftp与www主目录结合及权限控制

1、系统版本centos 6.2

2、安装vsftpd

yum -y install vsftpd db4

默认vsftpd的安装路径是/etc/vsftpd

建立一个zhanghao的文件,单行为用户名,双行为密码,例如
# vi /etc/vsftpd/zhanghao

test

12345

建立数据库文件并设置文件属性
# db_load -T -t hash -f  /etc/vsftpd/zhanghao /etc/vsftpd/vsftpd_login.db //更新、添加用户信息也这样操作一次就可以了

建立认证文件
# vi /etc/pam.d/vsftp 插入如下两行 //原本这个文件已经有内容,导致登录验证出错。我将其他内容删除,只留下面两行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

建立一个虚拟用户
useradd -d /home/vsftpd -s /sbin/nologin vsftpd

修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf

listen=YES
background=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to vip FTP servers
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
guest_enable=YES
guest_username=vsftpd (虚拟用户映射的本地账户)
user_config_dir=/etc/vsftpd/user_config (虚拟用户的配置文件所在路径)
pam_service_name=vsftpd
reverse_lookup_enable=NO (反域名解析控制NO不解析)

在/etc/vsftpd 下面建立控制文件夹user_config及防止跨目录控制文件chroot_list
在/etc/vsftpd/user_config下面建立虚拟用户的配置文件

touch test

vi test


local_root=/www/test

write_enable=YES
anon_umask=022 (默认文件夹权限755)
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
guest_enable=YES
guest_username=www(映射真实www账号)
file_open_mode=0640 (新建文件权限640)

在chroot_list里面添加www防止跨目录

查看selinux是否关闭

防火墙添加规则

iptables -I INPUT -p tcp --dport 21 -j ACCEPT

重启vsftpd服务

测试ftp上传 上传之后在服务器端查看文件权限

-rw-r--r--  1 www  www  57887 8月  16 09:12 index.html
-rw-r--r--  1 www  www   1331 7月  30 11:07 index.php
drwxr-xr-x  5 www  www   4096 7月  29 09:24 member

有时候会遇到客户端连接ftp很慢  将客户端的被动模式修改成主动模式就可以了 

你可能感兴趣的:(ftp与www主目录结合及权限控制)