创建新的 vsftpd 用户并锁定到(指定)主/登录目录

zig*_*cko 38 linux centos ftp vsftpd

我需要定期对安装了 vsftp 的 CentOS linux 服务器上的各种目录进行临时和有限的访问。

我创建了一个用户,useradd [user_name]并使用passwd [password].

我在其中创建了一个目录/var/ftp,然后将其绑定到我希望限制访问的目录。

我还需要特别做什么来确保当这个用户登录到 FTP 时,他们只能访问这个目录?

zig*_*cko 55

完整的答案解决了我在一步一步演练之后的任何其他人的问题......

安装vsftpd使用这个作为指导

  • 使用useradd [user_name].
  • 使用passwd [user_name].创建用户密码。(系统会提示您指定密码)。
  • 在其中创建 FTP 目录,/var/ftp然后绑定到您希望使用mount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/.
  • 使用以下命令更改用户的主目录 usermod -d /var/ftp/custom_name/ user_name

    在 中/etc/vsftpd/vsftpd.conf,确保设置了以下所有内容:-

    • chroot_local_user=是
    • chroot_list_enable=是
    • chroot_list_file=/etc/vsftpd.chroot_list

vsftpd.chroot_list如果您希望他们对服务器上的任何地方具有完全访问权限,则仅在文件中列出用户。通过不在此文件中列出它们,您是说将所有vsftpd用户限制在其指定的主目录中。

换句话说(供参考):-

  1. 意味着默认情况下,除文件中的用户外,所有用户都被 chroot...
    • chroot_local_user=是
    • chroot_list_enable=是
  2. 意味着默认情况下,只有文件中的用户会被 chroot...
    • chroot_local_user=否
    • chroot_list_enable=是

  • 我刚刚发现出于安全原因,vsftp 似乎禁止在 chroot 顶层授予 ftp 用户写权限(但我不是 100% 确定)。因此,这可能是使用此“间接”的原因,以便授予 ftp 用户对特定文件夹的写访问权限,同时不允许查看 *任何同级 * 文件夹(如果您只是将他的家设置为一级,就会出现这种情况,避免了上述问题)。(见 http://ubuntuforums.org/showthread.php?t=2072383&p=12303279#post12303279) (2认同)
  • @zigojacko 您的用户是否只能看到他们分配的主目录?对我来说,这个 _defaults_ 用户到分配的目录,但是,他们仍然可以看到其他文件夹,并且可以一直窥探到 root,尽管只有读取访问权限。 (2认同)

小智 11

对我来说,即使在上述之后它也不起作用。有一个 local_root 已经设置为一个目录,无论我做什么,用户的目录都没有被监禁。最后它只在改变后工作

chroot_local_user=是

并遵循以下程序

  1. vi /etc/vsftpd.conf
  2. 添加“user_config_dir=/etc/vsftpd_user_conf”行(无引号)
  3. mkdir /etc/vsftpd_user_conf;
  4. cd /etc/vsftpd_user_conf
  5. vi 用户名;
  6. 输入“local_root=/srv/ftp/user_name”这一行

如果其他人有同样的问题,只需我的两美分。