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

Linux系统管理与编程17:自动化部署ftp服务

兰生幽谷,不为莫服而不芳;
君子行义,不为莫知而止休。

#virtual用户管理:passerbyA、captain和admin三个虚拟用户

# passerbyA只能看,captain可看读写上传,但不能删除。admin全部权限

[root@shell shell]# vim myFtp.sh

#!/bin/bash

#-----------------------------------------------------------

# File Name: myFtp.sh

# Version: 1.0

# Created: 2025-05-09 01:36:21

# Author:  网工XXX

# Contact:  QQ15523232551

# Copyright(R):CQIE

# Description:1.virtual用户管理了passerbyA、captain和admin

#               三个虚拟用户

#             2.passerbyA只能看,captain可看读写上传,但不能

#               删除。admin全部权限

#===========================================================

#我的化妆盒

RED='\033[31m'

GREEN='\033[32m'

YELLOW='\033[43m'

BLUE='\033[94m'

RedBlink="\e[5;31m"       #5是闪烁,31m是红色

UL='\033[4m'            #下划线

RESET='\033[0m'            #复位

# 安装必要组件

sudo yum install -y ftp vsftpd

# 创建虚拟用户映射的系统用户

sudo useradd -d /home/virtual -s /sbin/nologin virtual

sudo chmod 755 /home/virtual

# 创建虚拟用户数据库文件

sudo bash -c 'cat > /etc/vsftpd/vusers.txt << EOF

passerbyA

passerbyA_pass

captain

captain_pass

admin

admin_pass

EOF'

# 生成数据库文件

sudo db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db

sudo chmod 600 /etc/vsftpd/vusers.db

# 备份原始PAM文件

sudo cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

# 配置PAM认证

sudo bash -c 'cat > /etc/pam.d/vsftpd << EOF

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

EOF'

# 创建虚拟用户配置文件目录

sudo mkdir -p /etc/vsftpd/vusers_conf

# 配置passerbyA(只读)

sudo bash -c 'cat > /etc/vsftpd/vusers_conf/passerbyA << EOF

anon_world_readable_only=NO

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

EOF'

# 配置captain(上传/下载/修改,不能删除)

sudo bash -c 'cat > /etc/vsftpd/vusers_conf/captain << EOF

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=NO

EOF'

# 配置admin(完全权限)

sudo bash -c 'cat > /etc/vsftpd/vusers_conf/admin << EOF

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

EOF'

# 备份原始vsftpd配置

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

# 生成新的vsftpd配置

sudo bash -c '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

# 虚拟用户配置

user_config_dir=/etc/vsftpd/vusers_conf

guest_enable=YES

guest_username=virtual

allow_writeable_chroot=YES

pam_service_name=vsftpd

# 被动模式设置

pasv_enable=YES

pasv_min_port=50000

pasv_max_port=50010

EOF'

# 设置目录权限

sudo chown -R virtual:virtual /home/virtual

sudo chmod 755 /home/virtual

# 处理防火墙

sudo firewall-cmd --permanent --add-port=21/tcp

sudo firewall-cmd --permanent --add-port=50000-50010/tcp

sudo firewall-cmd --reload

# 处理SELinux

sudo setsebool -P ftpd_full_access on

# 启动服务

sudo systemctl enable vsftpd

sudo systemctl restart vsftpd

echo -e  "${GREEN}安装配置完成!${RESET}"

echo -e "虚拟用户密码文件:/etc/vsftpd/vusers.txt (${RedBlink}请及时修改权限或删除${RESET})"

图17- 1

远端测试:

图17- 2

图17- 3

http://www.xdnf.cn/news/376453.html

相关文章:

  • 31.下一个排列
  • 慈缘基金会“蝴蝶飞”助西藏女孩白玛卓嘎“折翼重生”
  • FreeRTOS Semaphore信号量-笔记
  • 项目管理从专家到小白
  • Pale Moon:速度优化的Firefox定制浏览器
  • 棒球裁判员学习指南·棒球1号位
  • 【数据结构与算法】图的基本概念与遍历
  • 嵌入式硬件篇---麦克纳姆轮(简单运动实现)
  • Linux系统入门第十二章 --Shell编程之正则表达式
  • [架构之美]Windows系统安装MySQL 8.0详细图文教程(十八)
  • 论文精读:YOLOE: Real-Time Seeing Anything
  • 从0开始学习大模型--Day05--理解prompt工程
  • 零知识证明:区块链隐私保护的变革力量
  • HTTPS加密握手与加密算法
  • Kotlin 内联函数深度解析:从源码到实践优化
  • 分书问题的递归枚举算法
  • [思维模式-25]:《本质思考力》-6- 马哲的三大规律:对立统一规律、质量互变规律、否定之否定规律,以及在计算机领域中的体现
  • RHCE实验:远程控制qq邮箱发送邮件
  • 20250510解决NanoPi NEO core开发板在Ubuntu core22.04.3系统下适配移远的4G模块EC200A-CN的问题
  • C++内存管理
  • 仓库管理系统,Java+Vue,含源码及文档,高效管理仓库物资,实现入库、存储、出库全流程数字化精准管控
  • 基于CNN卷积神经网络的带频偏QPSK调制信号检测识别算法matlab仿真
  • MySQL 从入门到精通(五):索引深度解析 —— 性能优化的核心武器
  • idea如何快速生成测试类
  • 【赵渝强老师】TiDB SQL层的工作机制
  • Yocto中`${B}`变量的作用
  • 论文图表自动编号与交叉引用
  • python中的继承和多态
  • FreeRTOS Queue消息队列-笔记
  • AlimaLinux设置静态IP