linux安装FTP服务虚拟用户配置脚本分享(终极脚本)
#!/bin/bash #2019年10月24日 10:57:12 #by vftpd server #wangxuejin www.cnbugs.com ############################## FTP_YUM="yum install -y" FTP_DIR="/etc/vsftpd" FTP_DB="vsftpd_login" FTP_USR="ftpuser" USR_CONF="vsftpd_user_conf" FTP_VIR="$*" FTP_PAS="Aa123456" if [ $# -eq 0 ];then echo -e "\033[32m-----------------------------\33[0m" echo -e "\033[32musage:{/bin/bash $0 test1|test2 test3|list.txt|help}" exit 0 fi if [ $1 == "help" ];then echo -e "\033[32m-----------------------------\33[0m" echo -e "\033[32musage:{/bin/bash $0 test1|test2 test3|list.txt|help}" exit 0 fi $FTP_YUM vsftpd >>/dev/null rpm -qa|grep vsftpd systemctl restart vsftpd.service $FTP_YUM pam libdb-utils libdb --skip-broken useradd -s /sbin/nologin ${FTP_USR} if [ $1 != "list.txt" ];then touch $FTP_DIR/${FTP_USR}s.txt for i in $(echo $FTP_VIR) do cat $FTP_DIR/${FTP_USR}s.txt|grep $i if [ $? -ne 0 ];then cat>>$FTP_DIR/${FTP_USR}s.txt<<EOF $i $FTP_PAS EOF if [ ! -d $FTP_DIR/$USR_CONF ];then mkdir -p $FTP_DIR/${USR_CONF}/ fi mkdir -p /home/${FTP_USR}/$i touch $FTP_DIR/${USR_CONF}/$i cat>$FTP_DIR/${USR_CONF}/$i<<EOF local_root=/home/${FTP_USR}/$i write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOF fi done db_load -T -t hash -f $FTP_DIR/${FTP_USR}s.txt $FTP_DIR/${FTP_DB}.db chmod 700 $FTP_DIR/${FTP_DB}.db cat>/etc/pam.d/vsftpd<<EOF auth required pam_userdb.so db=$FTP_DIR/${FTP_DB} account required pam_userdb.so db=$FTP_DIR/${FTP_DB} EOF cat $FTP_DIR/vsftpd.conf|grep guest_ if [ $? -ne 0 ];then cat>>$FTP_DIR/vsftpd.conf<<EOF #config virtual user FTP pam_service_name=vsftpd guest_enable=YES guest_username=${FTP_USR} user_config_dir=$FTP_DIR/${USR_CONF} virtual_use_local_privs=YES EOF fi chown -R ${FTP_USR}:${FTP_USR} /home/${FTP_USR} systemctl restart vsftpd.service systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/enforcing/disable/g' /etc/selinux/config else touch $FTP_DIR/${FTP_USR}s.txt for i in $(cat list.txt|grep -v pwd) do cat $FTP_DIR/${FTP_USR}s.txt|grep $i cat list.txt >>$FTP_DIR/${FTP_USR}s.txt if [ ! -d $FTP_DIR/$USR_CONF ];then mkdir -p $FTP_DIR/${USR_CONF}/ fi mkdir -p /home/${FTP_USR}/$i touch $FTP_DIR/${USR_CONF}/$i cat>$FTP_DIR/${USR_CONF}/$i<<EOF local_root=/home/${FTP_USR}/$i write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOF done db_load -T -t hash -f $FTP_DIR/${FTP_USR}s.txt $FTP_DIR/${FTP_DB}.db chmod 700 $FTP_DIR/${FTP_DB}.db cat>/etc/pam.d/vsftpd<<EOF auth required pam_userdb.so db=$FTP_DIR/${FTP_DB} account required pam_userdb.so db=$FTP_DIR/${FTP_DB} EOF cat $FTP_DIR/vsftpd.conf|grep guest_ if [ $? -ne 0 ];then cat>>$FTP_DIR/vsftpd.conf<<EOF #config virtual user FTP pam_service_name=vsftpd guest_enable=YES guest_username=${FTP_USR} user_config_dir=$FTP_DIR/${USR_CONF} virtual_use_local_privs=YES EOF fi chown -R ${FTP_USR}:${FTP_USR} /home/${FTP_USR} systemctl restart vsftpd.service systemctl stop firewalld systemctl disable firewalld setenforce 0 fi
脚本运行方法如下:
如需创建test1和test2两个FTP用户,运行方法如下:
[root@wxj 20191027]# ./vsftpd.sh_v6 test3 test4
如果定义文件list.txt参数,运行方法如下
vim list.txt test11 pwd1234 test22 pwd2234
运行方法如下:
[root@wxj 20191027]# ./vsftpd.sh_v6 list.txt
备注:密码必须以pwd开头,否则密码会当用户创建
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。