首页 > 代码库 > 在Ubuntu安装ftp服务器

在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 # 保存设置