我有一个使用Debian6.0的VPS。目前,SSH被设置为不接受密码登录,并且只接受基于密钥的登录。
需要在某个特定网站( vhost)上工作的人希望使用FTP。他不需要/不想要SSH。我如何为他设置FTP访问权限,使他能够对相关目录中的所有文件都有写权限,而只对相关目录有写权限?目录是/srv/www/domainname.com/public_html
目前,该目录中的所有目录和文件都属于www-data:www-data,为644/755。
我已经安装了vsftpd,并且一直在阅读一些指南,但是它们似乎都在处理允许多个用户拥有自己的用户名目录--这不是我想要的。我似乎不知道如何简单地定义一个FTP用户的密码,可以访问我选择的一个目录。
这是我第一次建立FTP服务器的经验。
谢谢。
编辑:还找到了这 --也许我应该使用ProFTPd,或者vsftpd也可以做我想做的事?
发布于 2011-03-03 00:24:39
如果您想使用SFTP唯一的解决方案,我最近创建了一篇博客文章,准确地描述了这一点,包括一些常见的错误:http://blog.frands.net/sftp-only-chroot-users-with-openssh-in-debian-166/
如果您想使用FTP解决方案,那么vsftpd确实是一个不错的选择。但是,当用户上传一个文件时,它将与他的用户和组一起按照定义的umask设置。您可以将用户的主组设置为www-data,然后创建适合vsftpd的umask。
这是我建议的快速操作方法:
使用www-data组创建用户,没有真正的shell和正确的home dir,然后设置密码。
useradd -d /path/to/his/domain.com -g www-data -s /bin/false theusername
passwd theusername确保vsftpd接受他的shell。cat /etc/shell并查找/bin/false (默认情况下不应该在那里)--如果不存在,则添加它:
echo "/bin/false" >> /etc/shells接下来,编辑vsftpd配置文件。触摸这些参数:(如果它们被注释掉,请删除#)
禁用对服务器的匿名访问
anonymous_enable=NO允许本地用户使用FTP
local_enable=YES允许文件上载
write_enable=YES设置umask,这样用户上传的文件也可以按组写(www-data)。
local_umask=002使用户不能搬出他的家
chroot_local_user=YES现在,重新启动vsftpd
/etc/init.d/vsftpd restart你应该都准备好了。
https://serverfault.com/questions/242480
复制相似问题