首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian 6:仅为网站编辑设置FTP

Debian 6:仅为网站编辑设置FTP
EN

Server Fault用户
提问于 2011-03-02 23:10:30
回答 1查看 3.7K关注 0票数 1

我有一个使用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也可以做我想做的事?

EN

回答 1

Server Fault用户

回答已采纳

发布于 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,然后设置密码。

代码语言:javascript
复制
useradd -d /path/to/his/domain.com -g www-data -s /bin/false theusername
passwd theusername

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

代码语言:javascript
复制
echo "/bin/false" >> /etc/shells

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

禁用对服务器的匿名访问

代码语言:javascript
复制
anonymous_enable=NO

允许本地用户使用FTP

代码语言:javascript
复制
local_enable=YES

允许文件上载

代码语言:javascript
复制
write_enable=YES

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

代码语言:javascript
复制
local_umask=002

使用户不能搬出他的家

代码语言:javascript
复制
chroot_local_user=YES

现在,重新启动vsftpd

代码语言:javascript
复制
/etc/init.d/vsftpd restart

你应该都准备好了。

但是!

  • FTP通常是不安全的。
  • 如果SFTP是可能的,请使用它。
  • 允许for服务器写入文件是一个安全漏洞,除非该目录用于上传或网站通常更改的文件。
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/242480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档