如何将vsftpd的默认目录更改为/而不是用户的主目录?

我目前以这种方式安装了vsftpd,当用户说出我的帐户frederik身份validation时,我将被定向到我的主目录/home/frederik/

这是某些FTP客户端的问题,因为它们无法更改为默认文件夹之外的任何内容,例如/home/ (即使给予权限)。

如何更改它以便经过身份validation的用户可以定向到/取而代之?

您可以使用vsftpd.conf创建chroot列表。 选中此项

属于ftp-users组的所有用户在登录时默认进入/ home / ftp-docs / ftp_stuff。 它们无法在其他目录中导航,并且仅限于此特定目录。

你做这个:

通过以root身份发出以下命令来创建目录:

 mkdir -p /home/ftp-docs/ftp_stuff 

然后这样做: –

 chgrp ftp-users /home/ftp-docs/ftp_stuff chmod 3777 /home/ftp-docs/ftp_stuff 

/etc/vsftpd/vsftpd.conf写这个chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

将所有ftp-users组用户名放在/etc/vsftpd.chroot_list然后在/etc/passwd文件中将属于ftp-users组的所有用户的主目录设为/home/ftp-docs/ftp_stuff 。 然后执行以下操作:

 service vsftpd restart 

然后通过任何属于ftp-users组的用户登录,您将/home/ftp-docs/ftp_stuff 。 你不能去其他更高级别的目录。

您可以在列表中为多个组创建多个条目。 这些组在列表文件中的顺序将决定我相信的最高目录。

只需将此行添加到/etc/vsftpd.conf

 local_root=/ 

基本上,您可以将其设置为您想要的任何目录。 您也可以在路径中使用$USER ,它将被用户的登录名替换。

因此,如果您将local_root设置为/home/$USER/ftp ,那么当用户连接到您的服务器时,他将被定向到其主目录中的ftp文件夹。