父文件夹 | 子文件夹 | 拥有者(上传) | 所属组(下载) | umask |
zjyw | ftp_zhqz | ftp_hxxt | 027 | |
ylhx | ftp_zhqz | ftp_hxxt | 027 | |
zhqz | qtdz | ftp_zhqz | ftp_hxxt | 027 |
dsf | ftp_zhqz | ftp_yl | 027 | |
yl | ftp_yl | ftp_zhqz | 027 | |
xg | ftp_hxxt | ftp_xg | 027 | |
cw | ftp_hxxt | ftp_cw | 027 | |
hxxt | nxy | ftp_hxxt | ftp_nxy | 027 |
dx | ftp_hxxt | ftp_dx | 027 | |
sj | ftp_hxxt | ftp_sj | 027 | |
xgcg | ftp_xg | ftp_cw | 027 |
1、安装vsftpd
#rpm -ivh vsftpd-******.rpm
2、设定自动启动
#chkconfig vsftpd on
3、建立虚拟用户初始文件(用户名和密码)
#touch /etc/vsftpd/vsftpd_login.txt vsftpd_login为文件名,可以任意命名
#echo zhqz>>/etc/vsftpd/vsftpd_login.txt 用户名
#echo zhqz>>/etc/vsftpd/vsftpd_login.txt 密码
#echo hxxt>>/etc/vsftpd/vsftpd_login.txt
#echo hxxt>>/etc/vsftpd/vsftpd_login.txt
#echo yl>>/etc/vsftpd/vsftpd_login.txt
#echo yl>>/etc/vsftpd/vsftpd_login.txt
#echo xg>>/etc/vsftpd/vsftpd_login.txt
#echo xg>>/etc/vsftpd/vsftpd_login.txt
#echo cw>>/etc/vsftpd/vsftpd_login.txt
#echo cw>>/etc/vsftpd/vsftpd_login.txt
#echo nxy>>/etc/vsftpd/vsftpd_login.txt
#echo nxy>>/etc/vsftpd/vsftpd_login.txt
#echo dx>>/etc/vsftpd/vsftpd_login.txt
#echo dx>>/etc/vsftpd/vsftpd_login.txt
#echo sj>>/etc/vsftpd/vsftpd_login.txt
#echo sj>>/etc/vsftpd/vsftpd_login.txt
#echo admin>>/etc/vsftpd/vsftpd_login.txt
#echo admin>>/etc/vsftpd/vsftpd_login.txt
4:、将虚拟用户文件转换为可识别的数据库文件
此处需用到三个rpm包(db4、db4-level、db4-utils)
#db-load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/vsftpd_login.db
数据库命令 原虚拟用户文件 新虚拟用户数据库文件
注意:此处数据库文件需更改权限
#chmod 600 /etc/vsftpd/vsftpd_login.db
5、编辑pam使用该数据库文件
注释掉原有全部代码,添加以下代码
#auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
6、此处为方便,我先建立相关文件夹
#mdkri /ftp
#mkdir /ftp/zhqz /ftp/hxxt
#mkdir zjyw ylhx qtdz dsf yl
#mkdir xg cw nxy dx sj xgcg
7、建立虚拟用户对应系统用户
#useradd -d /ftp/zhqz -s /sbin/nologin ftp_zhqz
useradd 建立用户命令
/ftp/zhqz 指定用户主目录
/sbin/nologin 指定用户不可登陆系统
ftp_zhqz 用户名
#useradd -d /ftp -s /sbin/nologin ftp_hxxt
#useradd -d /ftp/zhqz -s /sbin/nologin ftp_yl
#useradd -d /ftp/hxxt -s /sbin/nologin ftp_xg
#useradd -d /ftp/hxxt/cw -s /sbin/nologin ftp_cw
#useradd -d /ftp/hxxt/nxy -s /sbin/nologin ftp_nxy
#useradd -d /ftp/hxxt/dx -s /sbin/nologin ftp_dx
#useradd -d /ftp/hxxt/sj -s /sbin/nologin ftp_sj
#useradd -d /ftp -s /sbin/nologin ftp_admin
8、改变文件夹拥有者及属组
#chown ftp_admin ftp 改变ftp文件夹拥有者为ftp_admin
#chgrp ftp_admin ftp 改变ftp文件夹属组为ftp_admin组
9、限定任何用户上传的文件均与文件夹拥有者和属组相同
#chmod 3750 /ftp
修改后权限为drwxr_s__T
那么上传到ftp文件夹下的文件拥有者均为ftp_admin,属组也均为ftp_admin组
10、修改vsftpd.conf配置文件
anonymous_enable=no 禁止匿名用户登录
write_enable=yes 允许写权限
local_enable=yes 允许系统用户登录
connect_form_port_20=no 不指定20端口
listen=yes
pam_service_name=vsftpd pam指定名称
以下为手动添加
chroot_local_user=yes 限定用户主目录
user_config_dir=/etc/vsftpd/vsftpd_login 指定虚拟用户配置文件目录
max_clients=50 最大连接客户端数
max_per_ip=1 每ip最大连接数
port_enable=no
pasv_enable=yes 允许pasv模式
pasv_min_port=65341
pasv_max_port=65242
11、建立每个虚拟用户的单独配置文件
#mkdir /etc/vsftpd/vsftod_login
12、建立上传文件权限
#vi zhqz
guest_enable=yes
guest_username=ftp_zhqz
anon_world_readable_only=no
anon_upload_enable=yes
anon_nkdir_write_enable=yes
anon_other_write_enable=yes
anon_umask=027
12、建立下载文件权限
#vi cw
guest_enable=yes
guest_username=ftp_cw
anon_world_readable_only=no