在Ubuntu安装ftp服务器


在阿里云买了个虚拟服务器,装了个ubuntu,一开始安装的是他们推荐的vsftp,后来其中一个网站要给别人搞了,需要给ftp帐号他。这个vsftp有个问题就是无办法限制用户只能访问其home目录,例如我有个网站/www/website1跟/www/website2,对应的帐号是website1user跟website2user,他们的home目录分别是/www/website1跟/www/website2。但是你用website1user或者website2user登录你不仅可以看到其他网站的目录,甚至系统的文件目录也可以操作。vsftp提供了限制访问home目录的功能,但怎么设置都没效果,而且它只能限制ftp的,如果通过sftp访问就没效了,估计是有bug,浪费了我一晚时间最后没解决,搞到我直想骂人。实在没办法只好换成pure-ftp,发觉简单很多,以下例子使用我上面说的环境。

安装:

aptitude install pure-ftpd
cd /etc/pure-ftpd/conf
echo 'no' > PAMAuthentication
echo 'no' > UnixAuthentication
echo '/etc/pure-ftpd/pureftpd.pdb' > PureDB
ln -s ../conf/PureDB /etc/pure-ftpd/auth/50pure
创建通用用户组及用户:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "FTP user" -g ftpgroup ftpuser
设置用户权限:
chown -R ftpuser:ftpgroup /www
增加ftp用户(pure-ftp并不会在系统创建用户,这里创建的是虚拟用户,比vsftp科学多了):
pure-pw useradd website1user -u ftpuser -d /www/website1
我这里创建了website1user这个虚拟用户,创建的时候会提示输入密码。(如果系统本来有website1user这个用户也没影响,当然也可以删除系统的website1user)
保存设置:
pure-pw mkdb
重启服务器后就可以测试了。
service pure-ftpd restart
经测试用户只能操作自己的网站目录。

另外一些基本命令:

pure-pw useradd virtusername -u realusername -g realgroupname -d /home/directory #增加用户
pure-pw usermod virtusername -u realusername -g realgroupname -d /home/directory #修改用户
pure-pw userdel virtusername #删除用户
pure-pw passwd virtusername #改密码
pure-pw list # 列出所有用户
pure-pw show virtusername # 显示用户详细信息
pure-pw mkdb # 保存设置

相关内容