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.pswp.cn/pingmian/80263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80263.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025python學習筆記

一.Python語言基礎入門 第一章 01.初識Python Python的起源&#xff1a; 1989年&#xff0c;為了打發圣誕節假期&#xff0c;Gudio van Rossum吉多范羅蘇姆&#xff08;龜叔&#xff09;決心開發一個新的解釋程序&#xff08;Python維形&#xff09;1991年&#xff0c;第一個…

STM32單片機的快速成長路徑規劃

一、基礎準備階段&#xff08;1-2周&#xff09; C語言核心技能 重點掌握&#xff1a;指針操作、結構體、枚舉、位操作、函數指針&#xff08;回調函數基礎&#xff09;實踐項目&#xff1a;通過51單片機或STM8完成LED控制、按鍵檢測等基礎項目&#xff0c;熟悉寄存器配置和調試…

torch.nn.init.uniform_

nn.init.uniform_ 是 PyTorch 中用于初始化張量&#xff08;tensor&#xff09;的一個函數&#xff0c;它的作用是將張量的值填充為從均勻分布中采樣的隨機數。 詳細說明&#xff1a; 函數&#xff1a; torch.nn.init.uniform_(tensor, a0., b1.)tensor&#xff1a;需要被初始…

Spring MVC中跨域問題處理

在Spring MVC中處理跨域問題可以通過以下幾種方式實現&#xff0c;確保前后端能夠正常通信&#xff1a; 方法一&#xff1a;使用 CrossOrigin 注解 適用于局部控制跨域配置&#xff0c;直接在Controller或方法上添加注解。 示例代碼&#xff1a; RestController CrossOrigin…

基本句子結構

以下是英語句子五種基本結構的詳細解釋&#xff0c;并附上系動詞的全面分類及示例&#xff1a; ?1. 主謂結構&#xff08;SV&#xff09;? ?結構&#xff1a;主語&#xff08;Subject&#xff09; 不及物動詞&#xff08;Intransitive Verb&#xff09;?核心&#xff1a;…

游戲引擎學習第264天:將按鈕添加到分析器

回顧并為今天的工作做鋪墊 隨著時間的推移&#xff0c;我們的分析器&#xff08;profiler&#xff09;變得越來越強大。我通常會問大家是否記得我們要做什么&#xff0c;今天我們要做的似乎是按鈕相關的功能。 今天的目標是實現按鈕功能。我們從昨天留下的地方繼續&#xff0…

大節點是選擇自建機房還是托管機房

選擇PCDN大節點自建機房還是托管機房&#xff0c;需綜合考量資金實力、技術能力、運維需求、業務規模及合規要求。以下為具體分析&#xff1a; 自建機房的適用場景與考量因素 資金與技術門檻高 自建機房需投入服務器、存儲、網絡設備等硬件&#xff0c;以及機房建設、電力、散…

【SpringBoot】SpringBoot中使用AOP實現日志記錄功能

前言一、AOP基本概念二、項目準備三、實現日志記錄切面1、創建自定義日志注解2、實現日志切面3、配置AOP 四、使用示例1. 在Controller中使用2. 在Service中使用 六、高級配置1. 日志內容格式化2. 異步日志記錄3. 日志脫敏處理 七、代理類生成的核心邏輯問題1&#xff1a; 既然…

linux中的常用命令(一)

目錄 常用的快捷鍵 1- tab鍵:命令或者路徑提示及補全&#xff1b; 2-ctrlc:放棄當前輸入&#xff0c;終止當前任務或程序 3-ctrll;清屏 4-ctrlinsert:復制 5-鼠標右鍵:粘貼&#xff1b; 6-altc:斷開連接/ctrlshift r 重新連接 7-alt1/2/3/等&#xff1a;切換回話窗口 8-上下鍵…

Pycharm(十九)深度學習

一、深度學習概述 1.1 什么是深度學習 深度學習是機器學習中的一種特殊方法,它使用稱為神經網絡的復雜結構,特別是“深層”的神經網絡,來學習和做出預測。深度學習特別適合處理大規模和高維度的數據,如圖像、聲音和文本。深度學習、機器學習和人工智能之間的關系如下圖所…

多視圖密集對應學習:細粒度3D分割的自監督革命

原文標題&#xff1a;Multi-view Dense Correspondence Learning (MvDeCor) 引言 在計算機視覺與圖形學領域&#xff0c;3D形狀分割一直是一個基礎且具有挑戰性的任務。如何在標注稀缺的情況下&#xff0c;實現對3D模型的細粒度分割&#xff1f;近期&#xff0c;斯坦福大學視覺…

Vue——前端vue3項目使用漢字轉拼音

在 Vue3 項目中&#xff0c;可以通過以下 第三方 JavaScript 包 實現漢字轉拼音。這些包均兼容 Vue3&#xff0c;且無需依賴后端處理&#xff1a; 推薦方案 1. pinyin-pro 特點&#xff1a;功能強大、支持多音字、聲調、拼音匹配、輕量級&#xff08;~20KB&#xff09;。安裝…

批量統計PDF頁數,統計圖像屬性

軟件介紹&#xff1a; 1、支持批量統計PDF、doc\docx、xls\xlsx頁數 2、支持統計指定格式文件數量&#xff08;不填格式就是全部&#xff09; 3、支持統計JPG、JPEG、PNG圖像屬性 4、支持統計多頁TIF頁數、屬性 5、支持統計PDF、JPG畫幅 統計圖像屬性 「托馬斯的文件助手」…

LeetCode 每日一題 2025/5/5-2025/5/11

記錄了初步解題思路 以及本地實現代碼&#xff1b;并不一定為最優 也希望大家能一起探討 一起進步 目錄 5/5 790. 多米諾和托米諾平鋪5/6 1920. 基于排列構建數組5/7 3341. 到達最后一個房間的最少時間 I5/8 3342. 到達最后一個房間的最少時間 II5/9 3343. 統計平衡排列的數目5…

pytest自動化測試執行環境切換的兩種解決方案

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 一、痛點分析 在實際企業的項目中&#xff0c;自動化測試的代碼往往需要在不同的環境中進行切換&#xff0c;比如多套測試環境、預上線環境、UAT環境、線上環…

visual studio 2015 安裝閃退問題

參考鏈接&#xff1a; VS2012安裝時啟動界面一閃而過問題解決辦法 visual studio 2015 安裝閃退問題

RocketMQ Kafka區別

架構 ZooKeeper&#xff1a;管理 Broker 注冊、分區 Leader 選舉及消費者組狀態。Broker&#xff1a;存儲 Partition數據&#xff0c;每個 Partition 為獨立日志文件。Producer/Consumer&#xff1a;通過 ZooKeeper獲取路由信息&#xff0c;實現消息分發與消費。 NameServer&am…

MySQL進階篇2_SQL優化、鎖

文章目錄 1 SQL優化1.1插入數據優化1.2主鍵優化頁分裂頁合并主鍵設計原則 1.3order by設計優化1.4group by設計優化小理解 1.5limit設計優化順序IO和隨機IO小疑惑 1.6count設計優化1.7update優化關于隱式事務事務的DML操作 鎖全局鎖表級鎖表鎖元數據鎖意向鎖 行級鎖鎖的釋放條件…

如何測試 esp-webrtc-solution_solutions_doorbell_demo 例程?

軟件準備 esp-webrtc-solution/solutions/doorbell_demo 例程 此例程集成了 WebSocket 傳輸視頻流的應用 硬件準備 ESP32P4-Function-Ev-Board 環境搭建 推薦基于 esp-idf v5.4.1 版本的環境來編譯此例程 若編譯時出現依賴的組件報錯&#xff0c;可進行如下修改&#xff…

TransmittableThreadLocal:穿透線程邊界的上下文傳遞藝術

文章目錄 前言一、如何線程上下文傳遞1.1 ThreadLocal單線程1.2 InheritableThreadLocal的繼承困境1.3 TTL的時空折疊術 二、TTL核心設計解析2.1 時空快照機制2.2 裝飾器模式2.3 采用自動清理機制 三、設計思想啟示四、實踐啟示錄結語 前言 在并發編程領域&#xff0c;線程上下…