实现Ubuntu下的多网站+多用户FTP管理: Apache + vsftpd
Ubuntu自带的WEB服务器是Apache,这人不用多说。下面只介绍FTP的实现。
1、安装vsftpd
Ubuntu安装软件倒不是件困难的事,输入:
sudo apt-get install vsftpd
安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地址。应该可以看到一个空白内容的ftp空间。
默认配置下匿名用户可以下载,但不能写入或是上传
2、配置 vsftpd.conf文件
现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。
首先找到配置 vsftpd的文件,位置在/etc/vsftpd.conf
修改之前最好先备份下这个文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
然后可以改动了:
#禁止匿名用户登录
anonymous_enable=NO
#本地用户可用
local_enable=YES
#可用写操作
write_enable=YES
#权限掩码(设置上传的文件为所有用户可读写,这样Apache就有读写权限了)
local_umask=000
#不须要显示某目录下文件信息
dirmessage_enable=NO
#加点登录后的提示语句
ftpd_banner=Hello~~
#设置FTP服务器最大承载用户
max_clients=100
3. 配置FTP的用户
建立用户:
useradd username1
useradd username2
建立用户密码:
passwd username1
passwd username2
如果要删除一个用户:
userdel username1
新的问题
1、输入用户名密码后显示的位置是在用户的根目录下,而我们的WEB内容是在public_html目录里
2、用户可以跳到任何其他目录
要解决这些问题我们还得配置下vsftpd.conf
#启动chroot列表(Change root)
chroot_list_enable=YES
#指定列表位置(我这用的是默认地址)
chroot_list_file=/etc/vsftpd.chroot_list
接下来我们得在vsftpd.chroot_list上写进去我们要限制哪些用户,不让他们“漂移”……
vsftpd.chroot_list文件内容的格式:
username1
username2
username3
........
一行表示一个用户。
4. 配置用户的FTP目录
这样我们已经解决第2个问题了,登陆的用户只能在它的用户文件夹里活动,下面我们要更狠一点,让他只能在public_html里活动
依然还是找vsftpd.conf
#这句默认配置里是没有的,自己加上,定义一个配置用户的FTP目录的文件夹地址
user_config_dir=/etc/vsftpd_user_conf
现在,我们要把各个用户的配置文件放到目录/etc/vsftpd_user_conf中
建立和用户名相同的文件,如: username1 , username2
写入用户的FTP目录配制:
write_enable=YES
anon_world_readable_Only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/dbzh1
重启vsftpd就大功告成了:
/etc/init.d/vsftpd restart