修改vsftpd的默认根目录

  1. 修改vsftpd的默认根目录  
  2.   
  3. 做实验时有时需要将FTP服务器vsftpd的默认根目录(/var/ftp/pub)修改成指定的其他目录,比如/media/ftp/pub/  
  4.   
  5. 修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf,添加下面三行  
  6. local_root=/media/ftp/pub  
  7. chroot_local_user=YES  
  8. anon_root=/var/www/html/  
  9.   
  10. local_root 表示本地用户登录后的根目录,也就是非匿名,而是输入用户名和密码登录进入的,这里顺便说一下ftp登录的格式  
  11. ftp://username:passwd@localhost  
  12.   
  13. anon_root anonymous用户,即匿名用户访问的主目录  
  14.   
  15. 但是这时候可能会出现以下报错:  
  16.   
  17. [root@localhost pub]# lftp localhost  
  18. lftp localhost:~> ls  
  19. ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable anonymous root  
  20. 原因还是权限设置问题:  
  21. 是ftp默认主目录权限设置不对,我这里报这个错误是因为/media/ftp设置权限为777,/media/ftp/pub设置权限也为777。正确的权限设置是将/media/ftp权限设置为755,chmod 755 /media/ftp后重启ftp服务就ok了。  
  22.   
  23.   
  24.   
  25. 另:  
  26. 如果你是默认的ftp目录出现此问题,那一定是这个/home/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了chmod 777 /home/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个;  
  27.   
  28. 如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;  
  29. [root@localhost ~]# ls -ld /home/ftp  
  30. drwxrwxrwx 3 root root 4096 2005-03-23 /home/ftp  
  31.   
  32. 修正这个错误,应该用下面的办法;  
  33. [root@localhost ~]# chown root:root /home/ftp  
  34. [root@localhost ~]# chmod 755 /home/ftp  
  35.   
  36. 有的弟兄可能会说,那匿名用户的可读、可下载、可上传怎么办呢?这也简单,在/home/ftp下再建一个目录,权限是777的就行了,再改一改vsftpd.conf就OK了;没有什么难的;  
  37.   
  38. vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的,您可以去读一下vsFTPd的文档就明白的了;否则也不能称为最安全的FTP服务器了,对不对?  
  39.   
  40. 参考:http://www.shocr.com/change-the-default-root-directory-vsftpd/  
  41. http://hi.baidu.com/51cmdshell/blog/item/d6aa117638800710b051b9a3.html

### 配置 VSFTPD 限制用户访问指定目录 为了实现VSFTPD服务器上用户的访问权限仅限于特定目录,需调整多个配置项来确保安全性与功能性。 #### 修改主配置文件 `/etc/vsftpd/vsftpd.conf` 设置`chroot_local_user=YES`可以锁定本地用户在其家目录内[^3]: ```bash chroot_local_user=YES ``` 当此选项被激活时,所有登录的FTP用户都将受限于其各自的根目录之下。这有效地防止了他们浏览其他部分的文件系统结构。 对于不需要被限定在家目录中的某些特殊账户,则可以通过创建例外列表的方式处理,在同一配置文件中加入以下指令: ```bash chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list ``` 这里指定了一个包含不受限用户名单的路径;如果希望全部用户都被约束而不设立任何豁免名单的话,可将上述两行改为 `chroot_list_enable=NO`[^4]。 #### 设置独立的虚拟用户环境 (可选) 针对更复杂的场景——比如不同用户拥有不同的访问权限或隔离需求——推荐采用基于PAM认证机制下的虚拟用户方案[^1]: - 使用 PAM 插件验证来自自定义数据库的身份信息; ```bash auth required pam_userdb.so db=/etc/vsftpd/vsftpuser account required pam_userdb.so db=/etc/vsftpd/vsftpuser ``` - 构建专门用于存储各虚拟用户授权详情的小型配置库 (`/etc/vsftpd/virconf`) 来管理各自对应的资源位置和操作范围。 通过这种方式能够更加灵活地控制各个账号的行为模式而无需频繁更改全局参数设定。 #### 文件掩码设置 为了让新上传的数据具有合适的读写属性,默认情况下应适当放宽umask值至较低水平(如000),从而使得新建文件夹获得rwx权限组合即777,普通文档则为rw-rw-rw-,也就是666[^2] : ```bash local_umask=000 ``` 请注意,尽管这样做简化了初始状态下的共享协作流程,但在实际部署前仍要考虑安全因素并根据具体业务逻辑做出相应调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值