根据维基百科这里,您可以使用文件中的以下配置仅允许某些用户通过 FTP 登录/etc/vsftp.conf
:
userlist_enable=YES
userlist_file=/etc/vsftp.user_list
userlist_deny=NO
我已将我的系统配置为使用此配置,并且我只希望通过名为 的 FTP 公开一个用户streams
,因此我的/etc/vsftp.user_list
外观如下:
streams
有趣的是,一旦启用用户列表,我就无法登录。如果我更改userlist_enable
为NO
,则一切正常,但如果启用它,我根本无法登录,它只是不断尝试重新连接。我没有收到登录失败消息,它只是在使用时不断尝试重新连接lftp
。
我的/etc/vsftp.conf
文件可以在 Pastebin 上找到这里并且我的/etc/vsftp.user_list
可用这里。
我在这里做错了什么?我只是想让streams
用户能够登录。
答案1
粗略地看一下,并没有发现您的配置文件有什么问题......问题可能出在其他地方。
您可能已经尝试过此操作,但可能值得检查以下内容:
- 确保以 vsftpd 身份运行的用户具有适当的权限
/etc/vsftp.user_list
。您没有使用该nopriv_user
指令配置自己的非特权用户,但默认值为 nobody。 - 尝试注释掉该
chroot_local_users
指令以查看 chroot 是否存在问题。 - 你在进行更改后是否重新启动了 vsftpd 进程?一个常见的哎呀!对我来说,系统管理员的时刻是我进行了配置更改,但忘记对进程进行 HUP...(令人尴尬,是的,我知道)。
- 尝试直接从命令行运行 vsftpd,这样任何错误都会转到 STDERR。
- 您是否已将用户配置
streams
为/bin/false
登录 shell?请尝试使用/bin/nologin
。/bin/false
这将完全阻止该用户登录。 - 作为最后的手段,考虑使用PAM 和虚拟用户。
答案2
我可能来晚了,但我已经解决了这个问题。我在配置时遇到了这个问题。取消注释配置文件中的以下行:
#local_enable=YES *Change To* local_enable=YES