Centos自动配置FTP和自动添加ftp用户shell脚本

本文详细描述了如何通过bash脚本自动配置FTP服务器(vsftpd),包括安装、配置虚拟用户、设置权限,以及创建自动化用户脚本来管理FTP用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.自动配置FTP脚本文件 

#!/bin/bash
#林中寻雨
#所有的虚拟用户的主目录都在/var/ftp/virtual/目录下
#开始安装vsftpd
echo ">>> 1. Start install Vsftpd ......"
yum -y install pam pam-devel db4 de4-devel db4-tcl
yum -y install vsftpd
sleep 2
mkdir /var/ftp/virtual
useradd vsftpd -M -s /sbin/nologin
useradd ftpuser -d /var/ftp/virtual -s /sbin/nologin
chown ftpuser.ftpuser /var/ftp/virtual
sleep 3
#开始配置vsftpd
echo ">>> 2. Start config Vsftpd ......"
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
cat /dev/null > /etc/vsftpd/vsftpd.conf
echo "
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to FTP Server
chroot_local_user=YES
ls_recurse_enable=NO
listen=YES
hide_ids=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
" >> /etc/vsftpd/vsftpd.conf
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
cat /dev/null > /etc/pam.d/vsftpd
echo "auth    sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/virtusers
account sufficient      /lib64/security/pam_userdb.so    db=/etc/vsftpd/virtusers
" >> /etc/pam.d/vsftpd
sleep 3
#开始配置其它
echo ">>> 3. Start config other ......"
touch /var/log/vsftpd.log
chown vsftpd.vsftpd /var/log/vsftpd.log
mkdir /etc/vsftpd/vconf/ -pv
sleep 3
#配置虚拟用户test,用于验证是否可用
echo ">>> 4. Start config vitual user"
echo -e "test\ntest123" >> /etc/vsftpd/virtusers
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db /etc/vsftpd/virtusers
mkdir /var/ftp/virtual/test #创建test虚拟用户的站点目录,最好使用用户本命为站点目录,这样便于理清哪个目录是哪个用户的
echo "local_root=/var/ftp/virtual/username
#指定虚拟用户的具体主路径
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
#设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
local_max_rate=50000
#设定该用户的最大传输速率,单位b/s
" >> /etc/vsftpd/vconf/vconf.tmp
cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/test
sed -i s/username/test/g /etc/vsftpd/vconf/test
echo "Alll OVER! "

1.2.自动配置FTP用户脚本文件

#!/bin/bash
#林中寻雨
#username must be same /etc/vsftpd/vconf/$username
if read -t 10 -p "Please enter you name: " username
then
   #check user exits yes or no
   if [ -f /etc/vsftpd/vconf/$username ]
   then
      echo "The $username is exists, please input another name."
   else
      read -s -p "Please enter your password: " passwd
	  echo -e "$username\n$passwd" >> /etc/vsftpd/virtusers
	  db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
      mkdir -pv /var/ftp/virtual/$username
      cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/$username
      sed -i s/username/$username/g /etc/vsftpd/vconf/$username
      echo "The config is over."
   fi
else
   echo -e "\nThe 10s has passed, you are to slow! "
fi

2.在虚拟机中创建一个.sh文件,比如ip.sh

vim ip.sh


将代码复制到文件里面,然后按Esc,输入:,在输入wq保存并退出(如有不懂请自行了解vim文本编辑器使用方法)

3.在命令终端输入下条命令赋予脚本执行权限
 

chmod +x ip.sh

4.在命令终端输入查看命令
 
ls


赋予权限的命令会呈现绿色

5.运行脚本 
./ip.sh

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值