当前位置: 首页 > 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下载

相关文章:

  • 网上做网站 干对缝儿生意世界网站排名查询
  • 创建网站要钱吗如何在百度发布文章
  • 完整的网站开发流程常德政府网站市民留言
  • 做教程网站资源放哪里有怎么申请域名建网站
  • 北京网站建设模板主题工厂管理培训课程
  • 国外单页制作网站模板百度搜索什么关键词排名
  • 【深度学习】-学习篇(一)
  • 纪念抗战胜利知识答题pk小程序
  • 【JS-4.8-type属性】深入理解DOM操作中的type属性及其常见应用
  • Python爬虫结合API接口批量获取PDF文件
  • Dify全面升级:打造极致智能应用开发体验,携手奇墨科技共拓AI新生态
  • 鸿蒙应用开发中的状态管理:深入解析AppStorage与LocalStorage
  • log4cplus调用
  • 《仿盒马》app开发技术分享-- 兑换商品详情(69)
  • WPF中的MVVM设计模式
  • 解锁Selenium:Web自动化的常用操作秘籍
  • 第九节 CSS工程化-预处理技术对比
  • DVWA Brute Force漏洞深度分析与利用指南
  • C# VB.NET中Tuple轻量级数据结构和固定长度数组
  • 秋招Day14 - MySQL - 场景题
  • RabbitMQ 利用死信队列来实现延迟消息
  • Linux Sonic Agent 端部署(详细版)(腾讯云)
  • Google Cloud Platform(GCP)实例中使用显卡信息报错问题
  • 裸机项目添加FreeRTOS操作系统--常见报错
  • Kubernetes生命周期管理:深入理解 Pod 生命周期
  • Aerotech系列(4)Aerotech.A3200名空间