背景信息:
我正在使用Serverpilotpipe理我的Ubuntu服务器,它不提供任何FTP服务。
serverpilot /srv/users/serverpilot/ /srv/users/serverpilot/apps/website/public/ 。 我想要的是:
现在我想拥有一个只能读写这个目录的FTP帐号: /srv/users/serverpilot/apps/website/public/ftpdir/ 。
我试过了:
sudo apt-get install vsftpd sudo useradd -m -d /srv/users/serverpilot/apps/website/public/ftpdir ftpuser (这可能不是一个好主意,有一个用户的主目录在另一个用户主目录) sudo passwd ftpuser更改了密码 sudo vi /etc/vsftpd.conf编辑默认的vsftpdconfiguration
local_enable=YES所以ftpuser可以用作ftplogin write_enable=YES用户可以写入 chroot_local_user=YES不能访问它的主目录之外的任何东西 pam_service_name=ftp因为我得到一个530login不正确的错误 sudo ufw allow 21/tcp 问题:
ftpuser旁边的其他用户也可以用作FTPlogin。 我只想要1个ftp用户,并且不允许其他系统用户使用FTP。 ftpuser也可以通过SSH连接到服务器。 553 error: could not create file试图上传553 error: could not create file时553 error: could not create file错误,要解决这个问题我遇到了这个问题: https : //askubuntu.com/a/320186但我不认为这是正确的因为该文件应该由serverpilot用户拥有,而不是ftpuser用户。 在serverpilot用户下运行的网站应该处理上传的文件。 我以前如何解决这个问题:
在过去的另一台服务器上,我更改了目录所有权,添加了这些额外的vsftpdconfiguration选项后,它终于可以正常工作:
file_open_mode=0775 local_umask=022 allow_writeable_chroot=YES pam_service_name=vsftpd
但在那个服务器上,我处理上传的文件,因为所有权的问题,所以我在使用file_get_contents() PHP函数来获取文件通过networking,而不是直接访问它们在服务器上,这不是很好。
最后一个问题:
我怎样才能简单地有一个FTPlogin,可以读取和写入用户主目录中的所有权保留在主目录所在的用户的目录?
对不起,重复,我也问过这个问题上的Ubuntu没有任何答案: https : //askubuntu.com/questions/774701/ftp-account-for-just-one-directory也许更多的运气在这里