上一篇                     
               
			  Linux如何修改FTP目录?
- Linux
- 2025-07-05
- 3745
 在Linux中更改FTP目录需编辑FTP服务器配置文件(如vsftpd.conf),找到
 
 
local_root或
 anon_root参数,将其值修改为所需目录路径,保存后重启FTP服务生效。
在Linux系统中更改FTP目录的操作分为两种场景:作为客户端连接FTP时切换目录和作为服务器管理员修改FTP根目录,以下是详细操作指南:
作为FTP客户端更改目录
当使用命令行FTP工具连接远程服务器时,需通过FTP命令切换目录:
- 登录FTP服务器: ftp ftp.example.com # 输入用户名和密码登录 
- 查看当前目录: pwd # 显示当前远程目录路径 
- 切换目录: cd /path/to/target_directory # 切换到目标目录 - 示例:切换到/var/www/uploads目录:cd /var/www/uploads 
 
- 示例:切换到
- 本地目录切换(可选): lcd /local/path # 更改本地工作目录(不影响远程) 
作为FTP服务器管理员修改根目录
以常用FTP服务端vsftpd为例,修改默认根目录需配置chroot环境:
步骤1:修改vsftpd配置文件
-  编辑配置文件:  sudo nano /etc/vsftpd.conf 
-  启用以下关键参数: # 限制用户在其主目录内(关键安全设置) chroot_local_user=YES allow_writeable_chroot=YES # 允许写入权限 # 指定根目录(可选,默认使用用户主目录) local_root=/custom/ftp_root # 自定义全局根目录路径 注意:若需为不同用户设置独立目录,跳过 local_root,直接修改用户主目录。
步骤2:设置用户主目录(推荐方法)
- 修改用户的主目录路径: sudo usermod -d /new/ftp/path ftpusername # 将用户ftpusername的主目录改为/new/ftp/path 
- 确保目录权限正确: sudo chown ftpusername:ftpusername /new/ftp/path # 所有权归用户 sudo chmod 755 /new/ftp/path # 开放读取和执行权限 
步骤3:重启服务生效
sudo systemctl restart vsftpd # 重启vsftpd服务
常见问题与解决方案
-  权限拒绝错误:  - 确保目标目录有755权限(所有者可读写,其他用户只读)。
- 检查SELinux状态:临时禁用setenforce 0或添加规则:sudo setsebool -P ftpd_full_access on 
 
- 确保目标目录有
-  连接后无法列出文件: - 确认目录路径存在且无拼写错误。
- 若使用vsftpd,检查配置中是否启用被动模式:pasv_enable=YES pasv_min_port=40000 pasv_max_port=50000 
 
-  用户无法退出主目录: - 确认vsftpd.conf中chroot_local_user=YES已启用。
 
- 确认
安全最佳实践
-  隔离FTP用户: - 创建专用系统用户(如ftpuser),避免使用root。
- 使用useradd -m -d /ftpdir -s /sbin/nologin ftpuser创建受限用户。
 
- 创建专用系统用户(如
-  加密传输:  - 优先使用SFTP(基于SSH)替代传统FTP,防止密码泄露: sftp user@example.com # 连接方式与SSH相同 
 
- 优先使用SFTP(基于SSH)替代传统FTP,防止密码泄露: 
-  定期更新: sudo apt update && sudo apt upgrade vsftpd # Debian/Ubuntu sudo yum update vsftpd # CentOS/RHEL 
引用说明
- vsftpd官方文档:https://security.appspot.com/vsftpd.html
- Linux man手册:man vsftpd.conf、man ftp
- 安全建议参考:NIST SP 800-123指南
重要提示:FTP协议本身不安全,建议仅在内部网络使用,对外服务务必启用FTPS(FTP over SSL)或切换至SFTP,配置完成后,使用
ftp localhost本地测试或telnet 21端口验证服务状态。
 
  
			