ftp安装脚本文档
ftp 安装脚本文档
目录
- ftp 安装脚本文档
- 0.概述
- 1.使用方法
- 2.脚本步骤:
0.概述
此Bash脚本自动化了在CentOS 7系统上安装和配置vsftpd(Very Secure FTP Daemon)服务器的过程。它创建了一个FTP用户,设置了必要的目录,并为安全高效的文件传输配置了vsftpd。该脚本旨在简化建立基本FTP服务器以供用户访问的过程。
1.使用方法
- 确保脚本具有执行权限
chmod +x ftp_setup_script.sh
2.执行脚本
./ftp_setup_script.sh
2.脚本步骤:
1.变量定义:
- FTP_DIR:FTP服务器的基本目录。
- FTP_USER:FTP用户的用户名。
- FTP_PASS:FTP用户的密码。
- VSFTPD_CONFIG:vsftpd配置文件的路径。
- USER_LIST:用户列表文件的路径。
- CHROOT_LIST:chroot列表文件的路径。
- 安装vsftpd
- 使用提供的RPM文件安装vsftpd软件包
- 创建FTP用户和目录
- 使用指定的用户名和密码创建FTP用户。
- 设置FTP目录并配置适当的权限。
- 配置vsftpd
- 使用推荐的设置配置vsftpd。
- 启用具有定义端口范围的被动模式。
- 启用用户列表、chroot和其他安全功能。
- 允许新用户登录
- 将FTP用户添加到用户列表,允许其登录。
- 创建一个空的chroot列表文件。
- 启动和启用vsftpd
- 启动vsftpd服务。
- 启用vsftpd以在系统启动时启动
注意:
- 该脚本假定在CentOS 7环境中运行,可能需要根据其他发行版进行调整。
- 在生产环境中运行脚本之前,请检查脚本并根据需要调整变量。
此脚本按原样提供,使用时请小心。建议在部署之前了解其功能并根据具体要求进行调整。用户负责确保在其环境中设置的安全性和兼容性
完整代码如下:
#!/bin/bash
# 定义变量
FTP_DIR="/data/ftp"
FTP_USER="FTP_USER"
FTP_PASS="FTP_PASS"
VSFTPD_CONFIG="/etc/vsftpd/vsftpd.conf"
USER_LIST="/etc/vsftpd/user_list"
CHROOT_LIST="/etc/vsftpd/chroot_list"
# 安装vsftpd
echo "Installing vsftpd..."
sudo yum -y install /usr/local/dhtech/autoinstall/lib/vsftpd-3.0.2-29.el7_9.x86_64.rpm || { echo "Failed to install vsftpd."; exit 1; }
# 创建FTP目录和FTP用户
echo "Creating FTP user and directory..."
sudo useradd -m -d "$FTP_DIR" "$FTP_USER" || { echo "Failed to create user."; exit 1; }
echo "$FTP_USER:$FTP_PASS" | sudo chpasswd || { echo "Failed to set password."; exit 1; }
sudo mkdir -p "$FTP_DIR" || { echo "Failed to create FTP directory."; exit 1; }
sudo chown -R "$FTP_USER":"$FTP_USER" "$FTP_DIR" || { echo "Failed to set permissions for FTP directory."; exit 1; }
sudo chmod 755 "$FTP_DIR" || { echo "Failed to change mode for FTP directory."; exit 1; }
# 配置vsftpd
echo "Configuring vsftpd..."
sudo tee "$VSFTPD_CONFIG" > /dev/null <<EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
connect_from_port_20=YES
ascii_upload_enable=NO
ascii_download_enable=NO
chroot_local_user=YES
chroot_list_enable=NO
listen=YES
listen_ipv6=NO
port_enable=YES
pasv_enable=YES
pasv_min_port=64000
pasv_max_port=65000
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
tcp_wrappers=YES
local_root=$FTP_DIR
EOF
# 允许新建用户登录FTP
echo "$FTP_USER" | sudo tee -a "$USER_LIST" > /dev/null || { echo "Failed to add user to user_list."; exit 1; }
sudo touch "$CHROOT_LIST" || { echo "Failed to create chroot_list."; exit 1; }
# 启动并设置vsftpd开机自启
echo "Starting and enabling vsftpd service..."
sudo systemctl start vsftpd || { echo "Failed to start vsftpd."; exit 1; }
sudo systemctl enable vsftpd || { echo "Failed to enable vsftpd."; exit 1; }
echo "FTP setup complete."