编程世界 - 计算机爱好者和编程爱好者的天堂!

编程世界

当前位置: 主页 > LINUX > Ubuntu > 服务器 > FTP服务器 >

用pure-ftpd搭建简单的Ubuntu FTP服务器(2)

时间:2009-11-28 08:52来源:编程世界整理 作者:无名 点击:
sudo apt-get install pure-ftpd pure-ftpd不是用配置文件而是用命令行参数,这种方式比较怪异。不过pure-ftpd的作者还是为偏好配置文件的用户提供了wrapper,可 以

sudo apt-get install pure-ftpd
pure-ftpd不是用配置文件而是用命令行参数,这种方式比较怪异。不过pure-ftpd的作者还是为偏好配置文件的用户提供了wrapper,可 以man一下pure-ftpd-wrapper. 在Debian/Ubuntu下的wrapper比较怪,是在/etc/pure-ftpd/conf下以设置项作为文件名,该项的设置值作为文件的内 容,如需要设置ClientCharset=gbk,就建立一个名为“ClientCharset”的文件,内容为“GBK”.
实验室的FTP需要给每个人配一个私有账号,相称于一个网络硬盘;同时允许匿名登录用于上传公共资料与数据交换。由于是内部服务器,需要改一下端口号,最后还需要一个管理员帐号。我使用的设置如下(用传统赋值写法),一些不常用的就不写了:
ClientCharset=gbk #必设,防止Windows登录出现中文乱码
DontResolve=yes #不解析域名,可以节省登录时间

BrokenClientsCompatibility=yes #兼容IE等非标准FTP client
ChrootEveryone=yes #把所有用户限制在其homedir下
KeepAllFiles=yes #禁止用户删除文件,TrustedGID组中的除外
TrustedGID=1001 #管理员组ftpadmins的GID,允许管理员删除文件
CreateHomeDir=yes #当虚拟用户第一次登录时,自动创建homedir
MaxClientsPerIP=2 #每个IP限制2个连接
MaxDiskUsage=90 #分区已使用空间超过90%时不再接受上传
NoAnonymous=no #允许匿名登录
Bind=8821 #改变端口号
每次修改服务器设置后都需要重新启动服务:

sudo /etc/init.d/pure-ftpd restart
一共建立了两个用户组:ftpadmins(管理员和普通用户,可以删除文件)和ftpusers(匿名账号,不能删除文件),以及三个用户:ftpadmin(管理员),ftpuser(普通用户)和ftp(匿名用户). 服务器的根目录为/var/ftp,所有者为ftpadmin:ftpadmins. 根目录下有public和users两个目录,public作为匿名访问的根目录,users存放普通用户的文件。匿名访问空间(public目录)中只有incoming允许上传(777),其它位置只能下载。users目录也被设为组内的完全访问权限(775),这样同组的普通用户(ftpuser)可以有读写和删除的权限。普通用户将被限制(chroot)在/var/ftp/users下自己的homedir中,因此虽然有完全访问权限,也不会影响其它位置。为了保险起见,其它位置的权限设为755,只有ftpadmin有完全权限。
sudo groupadd ftpadmins
sudo groupadd ftpusers
sudo useradd -g ftpadmins -d /dev/null -s /bin/false ftpadmin
sudo useradd -g ftpadmins -d /dev/null -s /bin/false ftpuser
sudo useradd -g ftpusers -d /var/ftp/public -s /bin/false ftp
sudo mkdir /var/ftp
sudo mkdir /var/ftp/public
sudo mkdir /var/ftp/public/incoming
sudo mkdir /var/ftp/users
sudo chown -R ftpadmin:ftpadmins /var/ftp
sudo chmod -R 755 /var/ftp
sudo chmod 777 /var/ftp/public/incoming
sudo chmod 775 /var/ftp/users
由于这些用户仅用于pure-ftpd,不需要给登录权限,因此shell被指定为/bin/false.
下面配置虚拟用户。虚拟用户是ftp登录时所用的用户账号,但可以共用一个系统账号。当用户使用虚拟账号登录ftp时,将实际使用虚拟用户对应的系统用户身份进行操作。实验室的所有普通用户均使用虚拟账号,对应的系统账号是ftpuser. 匿名用户只能对应系统中的ftp用户(名称不能改),pure-ftpd的官方文档中建议把匿名用户单独设在一个用户组中。
虚拟用户用pure-pw配置,官方文档在http://download.pureftpd.org/pub/pure-ftpd/doc /README.Virtual-Users. pure-pw的使用很方便,形式和管理系统用户差不多,只是在useradd usermod等前面加上pure-pw(用户名要紧随操作后面而不是放在最后,这一点与useradd等不同). 匿名用户不需要单独配置,因此homedir一定要在创建系统用户ftp时指定好,其它系统用户的homedir可以简单地指定为/dev/null,创建虚拟用户时再指定homedir.下面创建虚拟管理员账号admin与两个普通账号test1和test2:
sudo pure-pw useradd admin -u ftpadmin -d /var/ftp
sudo pure-pw useradd test1 -u ftpuser -d /var/ftp/user/test1
sudo pure-pw useradd test2 -u ftpuser -d /var/ftp/user/test2
执行每条命令之后pure-pw会要求输入账号的密码。在参数的-d选项中指定的homedir的并不需要事先创建好。如果在配置中设置CreateHomeDir=yes,则在虚拟用户第一次登录时pure-ftpd会自动创建其homedir. (责任编辑:编程世界)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容