安装 vsftpd 并配置FTP用户身份验证和访问权限脚本分享

经常遇到新机器要安装 vsftpd,这里记录下脚本安装过程

相关文章:

vsftpd 安装脚本

#!/bin/bash # set -x USERPREFIX=/usr/local/data FTPUSER=www yum -y install vsftpd yum -y install db4-utils [ ! -d /var/run/www ] && mkdir /var/run/www cd /etc/vsftpd cat > loguser.txt <<EOF lisi 123456 EOF db_load -T -t hash -f /etc/vsftpd/loguser.txt /etc/vsftpd/loguser.db [ -f /etc/pam.d/vsftpd ] && mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.`date +%F` cat > /etc/pam.d/vsftpd <<EOF auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/loguser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/loguser EOF #useradd -d $USERPREFIX/www -s /sbin/nologiin $FTPUSER cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.`date +%F` cat >> /etc/vsftpd/vsftpd.conf <<EOF pasv_enable=yes pasv_min_port=4500 pasv_max_port=5000 pasv_addr_resolve=yes pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES hide_file=.* reverse_lookup_enable=NO chroot_local_user=YES secure_chroot_dir=/var/run/www guest_enable=YES guest_username=www  EOF sed -i 's/anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf sed -i 's/^#xferlog_enable=YES/^xferlog_enable=YES/g' /etc/vsftpd/vsftpd.conf #sed -i 's@xferlog_file=/var/log/www@xferlog_file=/var/log/www@g' /etc/vsftpd/vsftpd.conf sed -i 's/xferlog_file=\/var\/log\/xferlog/xferlog_file=\/var\/log\/www/g' /etc/vsftpd/vsftpd.conf mkdir /etc/vsftpd/users_config cd /etc/vsftpd/users_config touch lisi cat > lisi <<EOF write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=$USERPREFIX/www EOF service vsftpd restart

脚本中创建/etc/pam.d/vsftpd文件,指定认证和账户管理模块

vsftpd安装脚本

添加用户

vim /etc/vsftpd/loguser.txt
vsftpd安装脚本

图中第一行是帐号,第二行是帐号密码

准备配置文件(读写权限)

vim /etc/vsftpd/users_config/zhansan write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/usr/local/data/www/ 

目录结构:

vsftpd安装脚本

加密帐号并重启服务

db_load -T -t hash -f /etc/vsftpd/loguser.txt /etc/vsftpd/loguser.db #将用户帐号密码转换为db数据库并使用hash加密  /etc/init.d/vsftpd restart

然后就可以远程连接了

ftp客户端有很多,推荐使用 FileZila 下载地址:

备注:

1、除了开放 21 端口外,配置文件中pasv_max_port和pasv_min_port端口号4500和5000也需要开放

2、一定要关闭 selinux哦

3、项目路径/usr/local/data/www需要给 www属主属组 chown -R ooopic.ooopic /usr/local/data/www