ubuntu1804服務器開啟ftp,局域網共享特定文件給匿名用戶

要在 Ubuntu 18.04 上設置一個 FTP 服務器,滿足以下要求:

  1. 允許匿名登錄(無需賬號密碼)。
  2. 指定分享特定目錄下的文件。
  3. 只允許只讀下載。

可以使用 vsftpd(Very Secure FTP Daemon)來實現。以下是詳細步驟:

1. 安裝 vsftpd

首先,安裝 vsftpd

sudo apt update
sudo apt install vsftpd -y

2. 配置 vsftpd

編輯 vsftpd 的配置文件:

sudo nano /etc/vsftpd.conf

根據需求修改或添加以下配置項:

(1) 基本配置
# 允許匿名登錄
anonymous_enable=YES# 禁止本地用戶登錄
local_enable=NO# 禁止寫入權限(只讀)
write_enable=NO# 設置匿名用戶的根目錄
anon_root=/home/cicd/workspace/build-images/# 允許匿名用戶下載文件
anon_download_enable=YES# 禁止匿名用戶上傳文件
anon_upload_enable=NO# 禁止匿名用戶創建目錄
anon_mkdir_write_enable=NO# 啟用被動模式(推薦用于局域網)
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100# 日志設置
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES# 其他安全設置
# connect_from_port_20=YES
# chroot_local_user=YES
# allow_writeable_chroot=YES
(2) 關閉不必要的功能

確保禁用了與需求無關的功能:

  • 禁止本地用戶登錄:local_enable=NO
  • 禁止寫入權限:write_enable=NO
(3) 設置匿名用戶的根目錄

指定匿名用戶的根目錄為 /home/cicd/workspace/build-images/(你可以根據需要更改此路徑)。

3. 創建共享目錄并設置權限

(1) 創建共享目錄

假設你希望共享 /home/cicd/workspace/build-images/ 目錄下的文件:

sudo mkdir -p /srv/ftp/shared

設置目錄的所有者和組
將目錄的所有者設置為本地用戶(例如 cicd),并將目錄的組設置為一個特定的組(例如 ftpusers):

sudo chown cicd:ftpusers -R /home/cicd/workspace/build-images/
# 如果ftpusers不存在
sudo groupadd ftpusers
sudo usermod -aG ftpusers nobody
# 設置目錄權限,7所有者有讀寫執行權限,5組有讀和執行權限,沒有寫權限,5其他用戶沒有權限
# 匿名登錄在ftp里使用nobody登錄,使用nobody組,所以other權限改成可讀可執行
sudo chmod 755 /home/cicd/workspace/build-images/
# 確保子目錄和文件權限一致
sudo find /home/cicd/workspace/build-images/ -type d -exec chmod 755 {} \;
sudo find /home/cicd/workspace/build-images/ -type f -exec chmod 644 {} \;
#啟用 setgid 位
sudo chmod g+s /home/cicd/workspace/build-images/

4. 啟動并啟用 vsftpd 服務

(1) 啟動 vsftpd
sudo systemctl start vsftpd
(2) 設置開機自啟
sudo systemctl enable vsftpd
(3) 檢查服務狀態

確保服務正常運行:

sudo systemctl status vsftpd

5. 測試 FTP 服務器

(1) 在局域網中訪問

從另一臺設備(例如 Windows 或其他 Linux 設備)訪問 FTP 服務器。可以使用瀏覽器、命令行工具或 FTP 客戶端。

示例:使用瀏覽器訪問

在瀏覽器中輸入:

ftp://<服務器IP地址>
示例:使用命令行訪問
ftp <服務器IP地址>
(2) 匿名登錄

無需輸入用戶名和密碼,直接按回車即可登錄。

(3) 下載文件

嘗試下載共享目錄中的文件,確保只讀權限生效。

7. 注意事項

  1. 安全性

    • 匿名 FTP 服務器可能會被濫用,建議僅在受信任的局域網中使用。
    • 如果需要更高的安全性,可以考慮使用 SFTP(基于 SSH 的文件傳輸協議)。
  2. 日志監控

    • 查看 FTP 日志以監控訪問情況:
      sudo tail -f /var/log/vsftpd.log
      
  3. 磁盤空間

    • 確保共享目錄所在的磁盤分區有足夠的空間。

通過以上步驟,你可以在 Ubuntu 18.04 上成功設置一個匿名訪問、只讀下載的 FTP 服務器,并指定共享特定目錄下的文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901672.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901672.shtml

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

相關文章

mcp和API區別

MCP&#xff08;Model Context Protocol&#xff0c;模型上下文協議&#xff09;與傳統API&#xff08;Application Programming Interface&#xff0c;應用程序編程接口&#xff09;在技術架構、集成方式和應用場景等方面存在顯著差異&#xff0c;以下是主要區別的總結&#x…

高版本Android (AIDL HAL) 使用HIDL方法

目錄 修改步驟和編譯方法 注意事項 Android 11 引入了使用 AIDL 實現 HAL 的功能。 后續Android新版本,HAL默認切到了使用AIDL. 因此當導入舊HIDL實現方式時,需要做一些修改。 1.將HAL HIDL模塊拷貝到相應目錄,進行編譯 source build/envsetup.sh lunch xxx mmm 模塊路徑 1.…

基于redis 實現我的收藏功能優化詳細設計方案

基于redis 實現我的收藏功能優化詳細設計方案 一、架構設計 +---------------------+ +---------------------+ | 客戶端請求 | | 數據存儲層 | | (收藏列表查詢) | | (Redis Cluster) | +-------------------…

學習筆記 - Swfit 6.1 - 語法概覽

獲取版本號 swift -versionHello world print("Hello, world!")末尾不需要分號 值 常量(let),變量(var) var myVariable 42 myVariable 50 let myConstant 42可以顯式聲明變量類型,若沒有則隱式推斷,類似下面的Double let implicitInteger 70 let implicit…

確保連接器后殼高性能互連的完整性

本文探討了現代后殼技術如何促進高性能互連的電氣和機械完整性&#xff0c;以及在規范階段需要考慮的一些關鍵因素。 當今的航空航天、國防和醫療應用要求連接器能夠提供高速和緊湊的互連&#xff0c;能夠承受振動和沖擊&#xff0c;并保持對電磁和射頻干擾 &#xff08;EMI/R…

第IV部分有效應用程序的設計模式

第IV部分有效應用程序的設計模式 第IV部分有效應用程序的設計模式第23章:應用程序用戶界面的架構設計23.1設計考量23.2示例1:用于非分布式有界上下文的一個基于HTMLAF的、服務器端的UI23.3示例2:用于分布式有界上下文的一個基于數據API的客戶端UI23.4要點第24章:CQRS:一種…

學習筆記十四——一文看懂 Rust 迭代器

&#x1f300; 一文看懂 Rust 迭代器 &#x1f4da; 目錄導航 什么是迭代器&#xff1f;為什么 Rust 到處都在用它&#xff1f;Rust 迭代器的底層邏輯是什么&#xff1f;適配器 vs 消費者&#xff1a;誰是主角&#xff1f;常見適配器&#xff1a;加工數據的全能工廠常見消費者…

QR輕量二維碼生成系統PHP源碼

源碼介紹 基于PHP編寫的二維碼在線生成系統。只需點擊幾下就可以生成您的個人二維碼&#xff01;上傳您的徽標&#xff0c;選擇自定義顏色&#xff0c;生成多種類型。選擇一個圖案并下載最終的qrcode。可用格式&#xff1a;.png&#xff0c;.svg 效果預覽 源碼獲取 QR輕量二…

基于Spring MVC的客戶端真實IP獲取方案解析

文章目錄 基于Spring MVC的客戶端真實IP獲取方案解析概述核心方法解析代碼實現工作流程 IP獲取優先級策略IP有效性驗證異常處理與日志使用場景注意事項擴展建議 基于Spring MVC的客戶端真實IP獲取方案解析 概述 在Web應用開發中&#xff0c;準確獲取客戶端真實IP地址是常見的…

Idea集成AI:CodeGeeX開發

當入職新公司&#xff0c;或者調到新項目組進行開發時&#xff0c;需要快速熟悉項目代碼 而新的項目代碼&#xff0c;可能有很多模塊&#xff0c;很多的接口&#xff0c;很復雜的業務邏輯&#xff0c;更加有與之前自己的代碼風格不一致的現有復雜代碼 更別提很多人寫代碼不喜…

Python(18)Python中JSON的妙用:詳解序列化與反序列化原理及實戰案例

目錄 一、背景&#xff1a;為什么Python需要JSON&#xff1f;二、核心技術解析&#xff1a;序列化與反序列化2.1 核心概念2.2 類型映射對照表 三、Python操作JSON的四大核心方法3.1 基礎方法庫3.2 方法詳解1. json.dumps()2. json.loads()3. json.dump()4. json.load() 四、實戰…

【物聯網】基于LORA組網的遠程環境監測系統設計

基于LORA組網的遠程環境監測系統設計 演示視頻: 簡介: 1.本系統有一個主機,兩個從機。 2.一主多從的LORA組網通信,主機和兩個從機都配備了STM32F103單片機與 LoRa 模塊,主機作為中心設備及WIFI網關,負責接收和發送數據到遠程物聯網平臺和手機APP,兩個從機則負責采集數…

通過金融科技(Fintech)掌控財務:智能理財管理指南

李升偉 編譯 在當今世界&#xff0c;科技幾乎重塑了我們生活的方方面面&#xff0c;包括金錢的管理方式。金融科技&#xff08;Fintech&#xff09;讓個人財務管理變得前所未有的便捷、高效和智能。從追蹤支出到投資理財、提升信用評分&#xff0c;金融科技工具賦予個人掌控財…

html-css樣式

1. 所有類型為文本的 元素的樣式 指定所有類型為文本的 元素的樣式 /* 文本框的樣式 */ input[type"text"] { font-size: 25px;width: 80px; /* 文本框的寬度 */ padding: 25px; } font-size&#xff1a;字體大小 width&#xff1a;文本框寬度 padding&#…

【C語言基礎】C++ 中的 `vector` 及其 C 語言實現詳解

一、C 中的 vector&#xff1a;動態數組的核心特性 1. 基本概念 vector 是 C 標準模板庫&#xff08;STL&#xff09;中的動態數組容器&#xff0c;支持自動擴容、高效元素訪問和豐富的操作接口。其核心特性包括&#xff1a; 動態內存管理&#xff1a;自動調整容量&#xff0…

nvm切換node版本后,解決npm找不到的問題

解決方法如下 命令行查看node版本 node -v找到node版本所對應的npm版本 點擊進入node版本 npm對應版本下載 點擊進入npm版本 下載Windows 壓縮包 下載完成后&#xff0c;解壓&#xff0c;文件改名為npm 復制到你nvm對應版本的node_modules 下面 將下載的npm /bin 目錄…

數據結構:最小生成樹的普里姆算法和克魯斯卡爾算法

對于一個帶權&#xff08;假設每條邊上的權均為大于零的實數&#xff09;連通無向圖 G 中的不同生成樹&#xff0c;其每棵樹的所有邊上的權值之和也可能不同&#xff1b;圖的所有生成樹中具有邊上的權值之和最小的樹稱為圖的最小生成樹&#xff08;Minimal Spanning Tree&#…

Information-Theoretic Limits of Bistatic Integrated Sensing and Communication

摘要 雙靜態感知指的是發射器&#xff08;照亮目標&#xff09;和感知接收器&#xff08;估計目標狀態&#xff09;在物理上分離的場景&#xff0c;這與發射和感知功能共存的單靜態感知形成對比。在實際場景中&#xff0c;雙靜態感知可能需要應對系統約束&#xff0c;或者作為…

XCTF-web(四)

unserialize3 需要反序列化一下&#xff1a;O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;} php_rce 題目提示rce漏洞&#xff0c;測試一下&#xff1a;?s/Index/\think\app/invokefunction&functioncall_user_func_array&vars[0]phpinfo&vars[1][]1 flag&#xff1…

Java Stream深度解析 高階技巧與性能優化實戰

文章目錄 一、Stream底層機制揭秘1.1 Stream流水線架構1.2 Spliterator探秘 二、自定義收集器高級實現2.1 實現高性能統計收集器2.2 多級分組優化技巧 三、并行流深度優化3.1 并行度控制策略3.2 工作竊取(Work-Stealing)優化 四、無限流與短路操作4.1 生成無限質數流4.2 短路操…