温馨提示×

centos ftpserver怎么用脚本管理

小樊
42
2026-09-30 05:06:18
栏目: 智能运维

在 CentOS 上用脚本管理 FTP 服务器,通常取决于你用的是什么 FTP 服务软件。CentOS 上最常见的是 vsftpd(也有用 ProFTPD 的)。下面以 vsftpd + 系统用户/虚拟用户 为例,讲怎么用脚本管理。


一、常见 FTP 服务

# 查看是否安装
rpm -qa | grep vsftpd

安装:

yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd

二、用脚本管理 FTP 用户(系统用户方式)

1️⃣ 添加 FTP 用户脚本

#!/bin/bash
# add_ftp_user.sh

if [ $# -ne 2 ]; then
  echo "用法: $0 用户名 密码"
  exit 1
fi

USER=$1
PASS=$2

useradd -m -s /sbin/nologin $USER
echo "$USER:$PASS" | chpasswd

# 设置目录权限
chown -R $USER:$USER /home/$USER

echo "FTP 用户 $USER 创建完成"

使用:

sh add_ftp_user.sh ftpuser 123456

2️⃣ 删除 FTP 用户脚本

#!/bin/bash
# del_ftp_user.sh

USER=$1
userdel -r $USER
echo "FTP 用户 $USER 已删除"

三、用脚本管理(虚拟用户方式,推荐)

1️⃣ 安装依赖

yum install -y vsftpd pam* db4*

2️⃣ 虚拟用户管理脚本

添加虚拟用户

#!/bin/bash
# add_vuser.sh

VUSER=$1
VPASS=$2
VFILE=/etc/vsftpd/vuser_list

echo "$VUSER" >> $VFILE
echo "$VPASS" >> $VFILE

db_load -T -t hash -f $VFILE /etc/vsftpd/vuser.db
echo "虚拟用户 $VUSER 添加成功"

删除虚拟用户(简单版)

sed -i "/^$1$/,+1d" /etc/vsftpd/vuser_list
db_load -T -t hash -f /etc/vsftpd/vuser_list /etc/vsftpd/vuser.db

四、用脚本控制 FTP 服务

#!/bin/bash
# ftp_ctl.sh

case $1 in
  start)
    systemctl start vsftpd
    ;;
  stop)
    systemctl stop vsftpd
    ;;
  restart)
    systemctl restart vsftpd
    ;;
  status)
    systemctl status vsftpd
    ;;
  *)
    echo "用法: $0 {start|stop|restart|status}"
esac

五、批量管理示例

for u in user1 user2 user3; do
  sh add_ftp_user.sh $u "Pass123"
done

六、常见注意点

  • /etc/vsftpd/vsftpd.conf 要开启:
local_enable=YES
write_enable=YES
  • 防火墙:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
  • SELinux:
setsebool -P ftpd_full_access on

如果你告诉我:

  • 用的是 vsftpd / proftpd
  • 是 系统用户 / 虚拟用户
  • 想实现 增删改查 / 配额 / 限速

我可以帮你写一套完整可落地的管理脚本。

0 踩