我有一个使用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
你应该全部设置。
但!