Linux 7 下ftp 创建的脚本
#---------------------------------------------------------
# 本脚本适用与centos7.6平台;匿名登录,默认下载目录为/var/ftp/pub
#---------------------------------------------------------
1 #!/bin/bash 2 yum install -y update vim 3 sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config 4 systemctl stop firewalld && systemctl disable firewalld 5 6 #安装ftp插件 7 yum install -y vsftpd 8 9 #修改配置文件/etc/vsftpd/vsftpd.conf 10 11 echo "anonymous_enable=YES 12 local_enable=YES 13 write_enable=YES 14 local_umask=022 15 dirmessage_enable=YES 16 xferlog_enable=YES 17 connect_from_port_20=YES 18 xferlog_std_format=YES 19 listen=NO 20 listen_ipv6=YES 21 22 pam_service_name=vsftpd 23 userlist_enable=YES 24 tcp_wrappers=YES" > /etc/vsftpd/vsftpd.conf 25 26 27 #启动服务 28 systemctl start vsftpd && systemctl enable vsftpd
本地用户登录ftp的脚本;
1 #!/bin/bash 2 yum install -y update vim 3 sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config 4 systemctl stop firewalld && systemctl disable firewalld 5 6 #安装ftp插件 7 yum install -y vsftpd 8 9 read -p "请创建用户名称:" ftpuser 10 read -p "请输入密码:" $passwd 11 mkdir /var/ftp/data 12 useradd $ftpuser 13 passwd $passwd 14 chown $ftpuser:$ftpuser /var/ftp/data/ 15 16 #修改配置文件/etc/vsftpd/vsftpd.conf 17 18 echo "anonymous_enable=NO 19 local_enable=YES 20 write_enable=YES 21 local_root=/var/ftp/data 22 local_umask=022 23 24 dirmessage_enable=YES 25 listen=YES 26 listen_ipv6=NO 27 dirmessage_enable=YES 28 xferlog_enable=YES 29 xferlog_std_format=YES 30 31 pam_service_name=vsftpd 32 userlist_enable=YES 33 tcp_wrappers=YES" > /etc/vsftpd/vsftpd.conf 34 35 36 #启动服务 37 systemctl start vsftpd && systemctl enable vsftpd
虚拟用户登录ftp
#!/bin/bash # 基础配置 yum install -y vsftpd pam pam-devel db4 db4-devel db4-utils db4-tcl sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config setenforce 0 systemctl stop firewalld && systemctl disable firewalld cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak cat > /etc/vsftpd/vsftpd.conf <<EOF # ----虚拟用户服务的配置文件------------------------ #禁止匿名登录FTP服务器 anonymous_enable=NO ##允许本地用户登录FTP服务器 local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES connect_from_port_20=YES #记录上传下载的日志文件 xferlog_enable=YES xferlog_std_format=YES xferlog_file=/var/log/xferlog #全面日志记录 dual_log_enable=YES vsftpd_log_file=/var/log/vsftpd.log ascii_upload_enable=YES ascii_download_enable=YES ##监听IPv4 sockets listen=YES # 虚拟用户pam认证文件 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES #全部用户被限制在主目录 chroot_local_user=YES #启用例外用户名单 chroot_list_enable=YES allow_writeable_chroot=YES #指定例外用户列表文件,列表中用户不被锁定在主目录 chroot_list_file=/etc/vsftpd/chroot_list guest_enable=YES guest_username=ftp virtual_use_local_privs=YES #虚拟用户配置文件 user_config_dir=/etc/vsftpd/vconf EOF # 创建虚拟用户配置文件存放的目录,这个目录是vsftpd.conf配置文件中的参数user_conf_dir=/etc/vsftpd/vconf定义的 mkdir -p /etc/vsftpd/vconf # 创建保存虚拟用户的文件 touch /etc/vsftpd/vusers # 在保存虚拟用户的文件中建立用户 echo "test" >> /etc/vsftpd/vusers echo "123456" >> /etc/vsftpd/vusers # 生成虚拟用户数据库加密文件 db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db # 备份vsftpd的pam认证文件/etc/pam.d/vsftpd cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak # 修改vsftpd的pam文正文件 cat > /etc/pam.d/vsftpd << EOF auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers EOF # 虚拟用户的用户配置文件 cat > /etc/vsftpd/vconf/test << EOF local_root=/srv/vsftpd/test anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 EOF # 虚拟用户的ftp上传目录 mkdir -p /srv/vsftpd/test chown -R ftp.root /srv/vsftpd/test # 创建文件vsftpd.conf配置文件中参数 chroot_list_file=/etc/vsftpd/vsftpd.chroot_list定义的文件,由chroot_local_user=YES,chroot_list_enable=YES 这两个参数配合使用 touch /etc/vsftpd/chroot_list systemctl start vsftpd && systemctl enable vsftpd