vsftpd-local_root = / var / www / sites / $ USER无法得到解释吗?


11

当我尝试连接到FTP服务器时,我得到: “ 500 OOPS:无法更改目录:/ home / $ USER / public_html”

  • 当我回显$ USER时-我得到正确的用户名
  • 好像$ USER不在我的/etc/vsftpd.conf中解释
  • 当我删除“ local_root = / var / www / sites / $ USER”时,我一切正常。

我正在运行vsftpd 2.2.2和Ubuntu 10.04.1 LTS版本:10.04代号:lucid

Answers:


21

您需要使用的是user_config_dir和local_root的组合。在主配置文件/etc/vsftpd/vsftp.conf中,您将输入以下内容:

chroot_local_user=YES
user_config_dir=/etc/vsftpd/users

在该目录(/ etc / vsftpd / users)中,您有一个与用户同名的配置文件(在本例中为$ USER),在该文件中,您具有:

local_root=/var/www/sites/USER
dirlist_enable=YES
download_enable=YES
write_enable=YES

...其中USER是实际名称(不是字面上的USER或$ USER)。


2
这里重要的步骤是use user_sub_token=$USER:,这使原始的发帖人配置起作用,因为$ USER变量获得了可用的值。看到我在其他答案中的评论。
user3450548 '18

5

您必须设置user_sub_token

user_sub_token=$USER
local_root=/var/www/sites/$USER

2
有趣的是,这是实际的解决方案,原始海报想要执行的操作实际上是适用的。您也可以在其他建议的示例中使用它,但不必启用user_config_dir。您可以选择是否做,取决于您的口味。这里重要的一遍是user_sub_token=$USER,因为这是$USER用conf内部可用的东西填充var的那一步。请参见user_sub_token手册页中的描述:“如果local_root包含user_sub_token,则此选项也会生效。”
user3450548 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.