云计算百科
云计算领域专业知识百科平台

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

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

  • 允许匿名登录(无需账号密码)。
  • 指定分享特定目录下的文件。
  • 只允许只读下载。
  • 可以使用 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. 注意事项

  • 安全性:

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

    • 查看 FTP 日志以监控访问情况:sudo tail -f /var/log/vsftpd.log
  • 磁盘空间:

    • 确保共享目录所在的磁盘分区有足够的空间。
  • 通过以上步骤,你可以在 Ubuntu 18.04 上成功设置一个匿名访问、只读下载的 FTP 服务器,并指定共享特定目录下的文件。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » ubuntu1804服务器开启ftp,局域网共享特定文件给匿名用户
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!