当前位置: 首页 > news >正文

vftp centos 离线部署

install_ftp_offline.sh

#!/bin/bash
# Filename: install_ftp_offline.sh
# Description: CentOS 7 离线安装配置VSFTPD服务# 检查root权限
if [[ $EUID -ne 0 ]]; thenecho -e "\033[31m错误:请使用root权限运行此脚本!\033[0m" exit 1
fi# 定义颜色输出
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
NC='\033[0m'# 检查系统版本
if ! grep -q "CentOS Linux release 7" /etc/centos-release; thenecho -e "${RED}错误:此脚本仅适用于CentOS 7系统${NC}"exit 1
fi# 步骤1:安装VSFTPD(离线方式)
echo -e "${YELLOW}[1/5] 安装VSFTPD服务...${NC}"
if ! rpm -qa | grep -q "vsftpd"; then# 检查是否提供离线包if [[ -f "./vsftpd-3.0.2-29.el7.x86_64.rpm" ]]; thenrpm -ivh ./vsftpd-3.0.2-29.el7.x86_64.rpmelseecho -e "${RED}错误:未找到vsftpd离线安装包,请放置vsftpd-3.0.2-29.el7.x86_64.rpm在当前目录${NC}"exit 1fi
elseecho -e "${GREEN}VSFTPD已安装,跳过安装步骤${NC}"
fi# 步骤2:配置防火墙
echo -e "${YELLOW}[2/5] 配置防火墙...${NC}"
if systemctl is-active firewalld &>/dev/null; thenfirewall-cmd --permanent --add-service=ftpfirewall-cmd --reloadecho -e "${GREEN}防火墙已放行FTP服务${NC}"
elseecho -e "${YELLOW}警告:firewalld未运行,跳过防火墙配置${NC}"
fi# 步骤3:配置SELinux
echo -e "${YELLOW}[3/5] 配置SELinux...${NC}"
if getenforce | grep -q "Enforcing"; thensetsebool -P ftpd_full_access onsetsebool -P ftp_home_dir onecho -e "${GREEN}SELinux策略已更新${NC}"
elseecho -e "${YELLOW}SELinux未启用,跳过配置${NC}"
fi# 步骤4:创建FTP用户和目录
echo -e "${YELLOW}[4/5] 创建FTP用户...${NC}"
read -p "输入要创建的FTP用户名(默认:ftpuser): " FTP_USER
FTP_USER=${FTP_USER:-ftpuser}if ! id -u $FTP_USER &>/dev/null; thenread -s -p "输入FTP用户密码: " FTP_PASSechouseradd -m -d /var/ftp/$FTP_USER -s /sbin/nologin $FTP_USERecho "$FTP_USER:$FTP_PASS" | chpasswdecho -e "${GREEN}FTP用户 $FTP_USER 创建成功${NC}"# 设置目录权限chmod 750 /var/ftp/$FTP_USERchown $FTP_USER: /var/ftp/$FTP_USER# 创建测试文件echo "这是FTP测试文件" > /var/ftp/$FTP_USER/test.txt
elseecho -e "${YELLOW}用户 $FTP_USER 已存在,跳过创建${NC}"
fi# 步骤5:配置VSFTPD
echo -e "${YELLOW}[5/5] 配置VSFTPD...${NC}"
cat > /etc/vsftpd/vsftpd.conf <<EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_min_port=40000
pasv_max_port=45000
pasv_address=$(hostname -I | awk '{print $1}')
EOF# 添加用户到白名单
echo $FTP_USER >> /etc/vsftpd/user_list# 创建被动模式端口范围文件
touch /etc/vsftpd/chroot_list# 启动服务
systemctl enable vsftpd
systemctl restart vsftpd# 验证安装
if systemctl is-active vsftpd &>/dev/null; thenecho -e "\n${GREEN}FTP服务安装成功!${NC}"echo -e "服务器IP: $(hostname -I | awk '{print $1}')"echo -e "用户名: $FTP_USER"echo -e "主目录: /var/ftp/$FTP_USER"echo -e "测试文件路径: /var/ftp/$FTP_USER/test.txt"echo -e "\n连接命令:"echo -e "ftp $(hostname -I | awk '{print $1}')"
elseecho -e "\n${RED}FTP服务启动失败,请检查:${NC}"echo "1. 查看日志: journalctl -xe"echo "2. 检查配置: /etc/vsftpd/vsftpd.conf"echo "3. 手动启动: systemctl restart vsftpd"
fi

vftpcentos离线部署资源-CSDN下载

http://www.lqws.cn/news/507223.html

相关文章:

  • IAR平台全面升级,提升瑞萨MCU架构的嵌入式软件开发效率
  • 软件测试的分类有哪些?(如黑盒/白盒/灰盒测试)
  • Day05_Linux项目怎么打包成exe
  • ArkUI-X通过Stage模型开发Android端应用指南(二)
  • Drag-and-Drop LLMs: Zero-Shot Prompt-to-Weights
  • 华为云Flexus+DeepSeek征文|华为云ModelArts Studio:利用New API实现大模型网关与AI资产管理的无缝对接
  • Revisiting Image Deblurring with an Efficient ConvNet论文阅读
  • 五种 IO 模式的简单介绍 -- 阻塞 IO,非阻塞 IO,信号驱动 IO,IO 多路复用,异步 IO
  • 2025.6.16-实习
  • 网络安全攻防:2025年新型钓鱼攻击防御指南
  • JVM(12)——详解G1垃圾回收器
  • 使用预训练权重在YOLO模型上训练新数据集的完整指南
  • 深入理解RAG:大语言模型时代的知识增强架构
  • 解析云计算虚拟化基石:KVM、QEMU与Libvirt的协同
  • SpringBoot - 整合 Redis 实现数据分布式缓存
  • 通过环境变量管理多版本JDK8、11、17并安装idea编译器
  • 攻防世界-MISC-MeowMeowMeow
  • BRAIN LANG:新发现!大脑网络重新调整以补偿在嘈杂环境中的听力困难
  • 【MV】编排4:基于时间线数据的密度突变检测和密度平滑算法
  • Springboot项目中使用手机号短信验证码注册登录实现
  • wpf单文件打包还有 一些dll打包不进去?
  • JS核心操作符:从基础到ES6+
  • phpstudy apache伪静态.htaccess文件置空丢失问题解决
  • iostat中的util原理
  • 从iOS到Flutter:我的转型之路与技术成长启示
  • matplotilb实现对MACD的实战
  • TDengine 技术参数配置大全
  • Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录
  • 什么是 OA 系统?OA 系统要具备什么样的功能?
  • jsoncpp-src-0.5.0编译