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

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

我需要定期授予已安装 vsftp 的 CentOS Linux 服务器上各个目录的临时和有限访问权限。

我已经使用 创建了一个用户useradd [user_name],并使用 为他们指定了一个密码passwd [password]

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

我还需要具体做什么来确保当该用户登录 FTP 时,他们只能访问该目录?

答案1

完整的答案解决了我的问题,对于其他需要逐步指导的人来说也是如此......

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. 意味着默认情况下,只有文件中的用户会被 chrooted...
    • chroot_local_user=否
    • chroot_list_enable =是

答案2

对我来说,即使做了上述操作,它仍然不起作用。local_root 已经设置为目录,无论我做什么,用户的目录都没有被监禁。最后,在仅更改后,它才起作用

chroot_local_user=是

并按照程序

  1. 六、/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”

如果其他人有同样的问题,我只想说一下我的看法。

答案3

如果您希望每个人都拥有 chroot 但在该 chroot 内有不同的登陆文件夹,该怎么办?

local_root=/folder
home_folder=$local_root/$USER

这难道不合理吗?

答案4

前面的答案中提到的 chrooting 在我的 ubuntu 18.04 服务器上不起作用。我最终使用这个参考让它工作了:https://passingcuriosity.com/2014/openssh-restrict-to-sftp-chroot/

相关内容