Ubuntu FTP 目录权限设置完全指南,确保安全与访问

admin

在 Ubuntu 服务器上搭建 FTP 服务(通常使用 vsftpd)时,目录权限的设置是至关重要的一环,配置不当不仅会导致用户无法访问文件,还可能引发严重的安全隐患(如目录被设置为 777 导致全服务器文件泄露)。

本文将详细介绍如何在 Ubuntu 系统中为 FTP 用户添加目录并正确设置权限,确保用户既能访问文件,又处于受控的安全范围内。

前置准备

确保您的系统已安装 vsftpd,如果没有安装,请运行以下命令:

Ubuntu FTP 目录权限设置完全指南,确保安全与访问

sudo apt update
sudo apt install vsftpd

创建 FTP 用户

为了安全起见,建议不要直接使用 root 用户进行 FTP 连接,我们需要创建一个专用的系统用户。

  1. 创建新用户(例如命名为 ftpuser):

    sudo adduser ftpuser

    注意:在设置密码时,请务必输入强密码。

  2. 创建该用户的 FTP 根目录:

    sudo mkdir -p /home/ftpuser/ftp_files

添加目录并设置权限

这是本文的核心部分,我们需要将目录的所有权赋予 FTP 用户,并设置正确的读取和写入权限。

递归更改所有权 (chown)

使用 -R 参数可以对目录及其内部所有文件递归地更改所有者。

sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp_files

解释:将 /home/ftpuser/ftp_files 目录及其子目录和文件的所有权更改为用户 ftpuser 和组 ftpuser

设置目录权限 (chmod)

权限通常使用数字表示:rwx(读、写、执行)分别对应 4、2、1。

  • 目录权限 755:这是最标准的安全设置。

    • 所有者:读写执行 (7)
    • 组用户:读执行 (5)
    • 其他用户:读执行 (5)
    • 作用:允许用户浏览目录结构(执行权限),但不能随意修改文件内容,除非文件本身权限允许。
  • 如果需要允许用户上传文件:您可能需要将上传目录的权限设置为 775。

    • sudo chmod -R 775 /home/ftpuser/ftp_files
  • 如果需要允许所有用户上传:设置为 777(不推荐,除非是公共测试环境,因为会降低安全性)。

sudo chmod -R 755 /home/ftpuser/ftp_files

配置防火墙

确保 Ubuntu 的防火墙 (UFW) 允许 FTP 流量通过。

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow in 20:21/tcp to any port

处理 SELinux(常见问题)

Ubuntu 默认可能开启 SELinux,如果设置了正确的权限,用户仍然无法登录,很可能是 SELinux 阻止了访问,您可以检查状态:

sudo getenforce

如果输出为 Enforcing,您可以临时设置为宽容模式进行测试,或者使用 setsebool 命令允许 vsftpd 访问家目录:

sudo setsebool -P ftp_home_dir 1

测试连接

完成上述步骤后,使用 FTP 客户端(如

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码