vsftpd-将用户限制在主目录

vsftpd-将用户限制在主目录

轻松设置 vsftpd

如果我运行此配置:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

然后我收到一条错误消息:

500 OOPS:vsftpd:拒绝在 chroot() 内以可写 root 身份运行

allow_writeable_chroot=YES但是,如果我按照建议添加这里,那么就无法连接:

连接尝试失败,显示“ECONNREFUSED - 服务器拒绝连接”

但是,如果我删除刚刚添加的那行并 sudo chmod a-w在用户主目录上执行,他们现在可以连接,但该服务毫无意义,因为他们无法上传任何内容。

有没有办法限制用户只能访问他们的主目录,同时又能连接并写入他们的主目录?关闭chroot_local_user是不可能的,因为他们可以浏览所有其他用户的目录。

答案1

您正在寻找allow_writeable_chroot配置选项,但该选项在 12.04 版的 vsftpd 中不存在。请参阅错误 1065714进行类似的询问以及为什么我们不能在 12.04 中进行此操作的详细信息。

关闭 chroot_local_user 不是一个选择,因为他们可以浏览所有其他用户的目录。

您是否考虑过默认切换到私有用户目录?如果您不希望用户浏览其他用户的目录,那么实现此目的的更安全方法是使用系统内置的权限机制,而不是通过每个单独的服务。请参阅服务器指南的用户管理部分了解具体操作方法。关闭chroot_local_user此选项对您来说可行吗?

答案2

详情请参阅以下内容关联

您可以选择以下三种方式之一:1. 在配置文件中定义选项 local_root=。必须通过 /home 或其他路径指向包含用户文件夹的目录。这样 vsftpd 就可以 chroot 到 /home 目录。

  1. 在配置文件中定义选项 passwd_chroot_enable=yes,并将 /etc/passwd 文件中的用户主目录从“/home/user”更改为“/home/./user”(不带引号)。这样,vsftpd chroot 到 /home 目录。

  2. 下载 vsftpd-ext 源,编译并覆盖现有的 vsftpd 二进制文件或从存储库中获取并添加到配置文件选项 allow_writeable_root=yes。

相关内容