ubuntu1804服务器开启ftp,局域网共享特定文件给匿名用户

要在 Ubuntu 18.04 上设置一个 FTP 服务器,满足以下要求:

  1. 允许匿名登录(无需账号密码)。
  2. 指定分享特定目录下的文件。
  3. 只允许只读下载。

可以使用 vsftpd(Very Secure FTP Daemon)来实现。以下是详细步骤:

1. 安装 vsftpd

首先,安装 vsftpd

bash 复制代码
sudo apt update
sudo apt install vsftpd -y

2. 配置 vsftpd

编辑 vsftpd 的配置文件:

bash 复制代码
sudo nano /etc/vsftpd.conf

根据需求修改或添加以下配置项:

(1) 基本配置
plaintext 复制代码
# 允许匿名登录
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/ 目录下的文件:

bash 复制代码
sudo mkdir -p /srv/ftp/shared

设置目录的所有者和组

将目录的所有者设置为本地用户(例如 cicd),并将目录的组设置为一个特定的组(例如 ftpusers):

bash 复制代码
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
bash 复制代码
sudo systemctl start vsftpd
(2) 设置开机自启
bash 复制代码
sudo systemctl enable vsftpd
(3) 检查服务状态

确保服务正常运行:

bash 复制代码
sudo systemctl status vsftpd

5. 测试 FTP 服务器

(1) 在局域网中访问

从另一台设备(例如 Windows 或其他 Linux 设备)访问 FTP 服务器。可以使用浏览器、命令行工具或 FTP 客户端。

示例:使用浏览器访问

在浏览器中输入:

复制代码
ftp://<服务器IP地址>
示例:使用命令行访问
bash 复制代码
ftp <服务器IP地址>
(2) 匿名登录

无需输入用户名和密码,直接按回车即可登录。

(3) 下载文件

尝试下载共享目录中的文件,确保只读权限生效。

7. 注意事项

  1. 安全性

    • 匿名 FTP 服务器可能会被滥用,建议仅在受信任的局域网中使用。
    • 如果需要更高的安全性,可以考虑使用 SFTP(基于 SSH 的文件传输协议)。
  2. 日志监控

    • 查看 FTP 日志以监控访问情况:

      bash 复制代码
      sudo tail -f /var/log/vsftpd.log
  3. 磁盘空间

    • 确保共享目录所在的磁盘分区有足够的空间。

通过以上步骤,你可以在 Ubuntu 18.04 上成功设置一个匿名访问、只读下载的 FTP 服务器,并指定共享特定目录下的文件。

相关推荐
好奇的菜鸟2 小时前
如何在 Ubuntu 24.04 (Noble) 上使用阿里源
linux·运维·ubuntu
好奇的菜鸟5 小时前
如何在Ubuntu上检查MySQL是否启动并放开3306端口
mysql·ubuntu·adb
ZPC82108 小时前
ubuntu 6.8.0 安装xenomai3.3
linux·运维·ubuntu
电脑能手9 小时前
遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
linux·ubuntu·ssh
snoopyfly~9 小时前
Ubuntu 24.04 安装配置 Redis 7.0 开机自启
linux·redis·ubuntu
精英的英9 小时前
在Ubuntu 24.04主机上创建Ubuntu 14.04编译环境的完整指南
linux·运维·ubuntu
奇妙之二进制10 小时前
计算机科学导论(10)什么是BIOS
ubuntu·计算机基础
岁月玲珑10 小时前
【如何判断Linux系统是Ubuntu还是CentOS】
linux·ubuntu·centos
Kevin不想说话9261911 小时前
Ubuntu 24.04 安装搜狗输入法完整教程
ubuntu
矩阵老炮15 小时前
Ubuntu20.4编译AOSP源码实践
ubuntu·aosp