Linux centos 7 安装vsftp-server服务器 一、系统环境 # cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 二、安装 vsftp 服务 # yum -y install vsftpd db4* (db4配置虚拟用户生成db库文件) 三、配置vsftp服务器主要配置文件 # cp /etc/vsftpd/vsftp.conf{,.bak} # grep -v '^#' /etc/vsftpd/vsftpd.conf #####配置如下####### anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=NO xferlog_std_format=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES ####添加如下########### chroot_local_user=YES chroot_list_enable=YES #(1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制) chroot_list_file=/etc/vsftpd/chroot_list listen=YES listen_ipv6=NO virtual_use_local_privs=NO ############# 以下开启虚拟用户权限################# guest_enable=YES guest_username=vsftpuser user_config_dir=/etc/vsftpd/v_conf pasv_enable=YES pasv_min_port=33000 pasv_max_port=34000 四、先建立虚拟用户名单文件 # touch /etc/vsftpd/user_ftp # cat /etc/vsftpd/user_ftp (第一行账号,第二行密码) admin (账号) 123456 (密码) user (账号) 123456(密码) 五、创建用户和组 # useradd -d /opt/ftpdata -s /sbin/nologin vsftpuser # touch /etc/vsftpd/chroot_lis #(1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制) # mkdir -p /etc/vsftpd/v_conf #(虚拟用户配置文件目录) 六、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效) # cp /etc/pam.d/vsftpd(,.bak) # vim /etc/pam.d/vsftpd auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/user_ftp account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/user_ftp 七、生成虚拟用户数据文件: # db_load -T -t hash -f /etc/vsftpd/user_ftp /etc/vsftpd/user_ftp.db # chmod 600 /etc/vsftpd/user_ftp.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取 八、创建ftp目录 # mkdir -p /opt/ftpdata/ # chown -R vsftpuser.vsftpuser /opt/ftpdata 九、配置用户登录ftp server # mkdir -p /opt/ftpdata/admin/system-file # chmod a-w /opt/ftpdata/admin #(新版本vsftp增加了ftp服务安全性,根目录不能有写入的权限,去掉写的权限) # chown -R vsftpuser.vsftpuser /opt/ftpdata/admin # chmod -R 700 /opt/ftpdata/admin/system-file # vim /etc/vsftpd/user_ftp #(添加用户) # cat /etc/vsftpd/user_ftp #(第一行账号,第二行密码) admin #(账号) 123456 #(密码) # db_load -T -t hash -f /etc/vsftpd/user_ftp /etc/vsftpd/user_ftp.db # chmod 600 /etc/vsftpd/user_ftp.db 十、建立虚拟用户个人Vsftp的配置文件 # cd /etc/vsftpd/v_conf # vim admin #(创建文件和设置的虚拟用户,名字要一样) # cat admin local_root=/opt/ftpdata/admin anon_umask=077 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 十一、启动 ftp server service # systemctl start vsftpd.service # systemctl enable vsftpd.service 十二、配置虚拟用户脚本 #!/bin/bash ################################ ## Writer By Tian # ## Ver 1.0 At 20190107 # ## sh vsftp.sh name password # ################################ data=/opt/ftpdata if [ $# -eq 3 ];then user=$1 pawd=$2 path=$3 for i in `sed -n '1~2p' /etc/vsftpd/user_ftp`;do if [ $user == $i ];then echo "user '$user' already exists" exit 1 fi done if [ ! -d "$path" ];then mkdir -p $path fi echo -e "$user\n$pawd" >> /etc/vsftpd/user_ftp db_load -T -t hash -f /etc/vsftpd/user_ftp /etc/vsftpd/user_ftp.db touch /etc/vsftpd/v_conf/$user cat >>/etc/vsftpd/v_conf/$user <<EOF local_root=$path/$user anon_umask=077 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOF else echo "Please input user pawd and path" fi mkdir -p $data/$user/System-file chown -R vsftpuser.vsftpuser ${data}/$user chmod a-w $data/$user chmod -R 700 $data/$user/System-file 脚本执行:./vsftp.sh username password /opt/ftpdata/username
效果如下: