Debian 6:为了网站编辑而设置FTP

我有一个使用Debian 6.0的VPS。 目前,SSH被设置为不接受密码login,只有基于密码的login。

一个人需要在一个特定的网站(虚拟主机)工作,希望使用FTP。 他不需要/需要SSH。 我怎样才能为他设置FTP访问权限,让他拥有对相关目录中所有文件的写入权限,并且只有相关的目录? 目录是/srv/www/domainname.com/public_html

目前,该目录中的所有目录和文件都属于www-data:www-data并且是644/755。

我已经安装了vsftpd,并且正在阅读一些指南,但是他们似乎都处理了允许多个用户拥有自己的用户命名的目录,而这些目录并不是我所追求的。 我似乎无法解决如何简单地定义一个FTP用户的密码,可以访问我select的一个目录。

这是我第一次设置FTP服务器的经验。

谢谢。

编辑:也发现这个 – 也许我应该使用ProFTPd,或者可以vsftpd也做我想要的?

如果您想使用SFTP only解决scheme,我最近创build了一篇博文,详细描述了这一点,其中包括一些常见错误: http : //blog.frands.net/sftp-only-chroot-users-with- OpenSSH的function于Debian的166 /

如果你想使用FTP解决scheme,vsftpd确实是一个不错的select。 但是,当用户上传文件时,将按照定义的umask设置其用户和组。 您可以将用户的主要组设置为www-data,然后创build适合vsftpd的umask。

这是一个快速如何做我的build议:

使用www-data组创build用户,没有真正的shell和正确的home目录,然后设置密码

 useradd -d /path/to/his/domain.com -g www-data -s /bin/false theusername passwd theusername 

确保vsftpd接受他的shell。 cat / etc / shells并寻找/ bin / false(它不应该在默认情况下) – 如果不存在,添加它:

 echo "/bin/false" >> /etc/shells 

接下来,编辑vsftpdconfiguration文件。 触摸这些参数:(如果他们被注释掉,删除#)

禁用对服务器的匿名访问

 anonymous_enable=NO 

允许本地用户使用FTP

 local_enable=YES 

允许file upload

 write_enable=YES 

设置umask,这样用户上传的文件也可以通过组(www-data)写入

 local_umask=002 

Chroot用户,所以他不能移出他的家庭目录

 chroot_local_user=YES 

现在,重新启动vsftpd

 /etc/init.d/vsftpd restart 

你应该全部设置。

但!

  • FTP通常是不安全的。
  • 如果SFTP可行,请使用它。
  • 允许Web服务器写入文件是一个安全漏洞,除非该目录用于上传或网站通常更改的文件。