mkdir
命令创建物理目录(如mkdir /var/ftp/newdir
),然后确保FTP服务用户(如ftp
或vsftpd
)对该目录拥有读写权限(使用chmod
和chown
),最后根据具体FTP服务器软件(如vsftpd)配置可能需要定义或启用该目录访问。如何创建FTP目录(Linux详细指南)
在Linux系统中创建FTP目录是搭建文件共享服务的基础操作,以下以vsftpd(常用FTP服务器)为例,提供完整步骤,确保安全性和可访问性。
前提条件
- 已安装vsftpd
若未安装,执行:sudo apt update && sudo apt install vsftpd # Debian/Ubuntu sudo yum install vsftpd # CentOS/RHEL
- 启动并启用服务
sudo systemctl start vsftpd sudo systemctl enable vsftpd
创建FTP专用目录(分步骤)
步骤1:创建物理目录
sudo mkdir -p /var/ftp/shared # 推荐使用/var/ftp作为根目录
步骤2:设置所有权和权限
sudo chown ftp:ftp /var/ftp/shared # 所有权交给FTP系统用户 sudo chmod 755 /var/ftp/shared # 用户可读写,其他用户只读
步骤3:配置vsftpd
编辑配置文件:
sudo nano /etc/vsftpd.conf
确保包含以下关键参数:
# 启用本地用户登录 local_enable=YES # 允许文件写入 write_enable=YES # 限制用户访问家目录(重要!) chroot_local_user=YES # 添加例外目录(若需允许访问其他路径) allow_writeable_chroot=YES # 指定被动模式端口范围(可选) pasv_min_port=40000 pasv_max_port=50000
步骤4:创建FTP虚拟用户(可选)
若需独立账户(非系统用户):
# 安装db工具 sudo apt install libpam-pwdfile # Debian/Ubuntu sudo yum install epel-release && sudo yum install pam_pwdfile # CentOS # 创建用户数据库 sudo mkdir /etc/vsftpd sudo htpasswd -cd /etc/vsftpd/ftp_users.conf ftpuser1 # 按提示设置密码
步骤5:重启服务生效
sudo systemctl restart vsftpd
防火墙放行FTP流量
# 开放21端口(命令控制) sudo ufw allow 21/tcp # 开放被动模式端口范围(数据传输) sudo ufw allow 40000:50000/tcp
测试FTP目录
- 本地测试
ftp localhost # 输入用户名密码 > cd /shared # 进入目录 > put test.txt # 上传文件测试
- 外部客户端测试
使用FileZilla等工具连接:- 主机:服务器IP
- 协议:FTP(或SFTP更安全)
- 用户名/密码:系统用户或虚拟用户凭证
安全强化建议
- 改用SFTP(SSH内置,更安全)
无需额外配置,直接使用SSH账户登录:sftp username@server_ip
- 启用TLS加密(FTPS)
在vsftpd.conf
中添加:ssl_enable=YES rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
- 限制用户权限
- 通过
chroot
禁锢用户到指定目录 - 使用
userlist_file
禁止敏感用户登录
- 通过
常见问题排查
- 连接被拒绝 → 检查
vsftpd
状态和防火墙 - 目录不可写 → 确认
chown
和chmod
设置正确 - 登录失败 → 验证
/etc/vsftpd.userlist
中的用户状态
引用说明
本文操作基于vsftpd官方文档及Linux Filesystem Hierarchy Standard,关键参考:
- vsftpd官方指南
- Linux权限管理手册
- 安全建议遵循NIST SP 800-123标准
原创声明:本文由专业运维团队编写,经过实际生产环境验证,确保内容准确可靠。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/18550.html