ftp服务器在Ubuntu 16.04上 安装
在xshell下查看是否安装ftp服务器
sudo apt-get update;sudo apt-get install vsftpd
查看ftp是否安装:
find / -name vsftpd* 或者用 rpm -qa | grep ftp
查看设置的端口,确认是否成功
netstat -utlpn | grep vsftp
netstat -na ftp 21
执行完该步骤,vsftpd服务已经安装
1、向文件中添加如下内容:
(a)修改ftp的配置文件
sudo vi /etc/vsftpd.conf
限制ftp用户只能在其主目录下的活动范围,详解(http://blog.csdn.net/bluishglc/article/details/42398811)
#所有用户都被限制在其主目录vsftpd.chroot_list下
chroot_local_user=YES
#是否可以添加特例,即在/etc/vsftpd.chroot_list下的用户不会被限制
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
userlist_enable和userlist_deny两个配置项的解释http://blog.csdn.net/bluishglc/article/details/42273197
#开启允许登录的用户 vsftpd.user_list
userlist_enable=YES
userlist_deny=NO #user_list是一个白名单,为YES是一个黑名单
userlist_file=/etc/vsftpd.user_list
seccomp_sandbox=NO
local_enable=YES #设置文件上传 write_enable=YES #使用utf8utf8_filesystem=YES
allow_writeable_chroot=YES
#设置根目录
local_root=/home/ftproot #要开启该目录的读写权限 sudo chmod -R 777 /home/ftproot
使文件中的"local_enable=YES"保存。
(b)新建用户(我的用户名ftpuser) (删除用户sudo userdel -r wttftp
第一步:新建目录/home/uftp作为用户主目录
sudo mkdir /home/ftpuser
第二步:新建用户uftp,制定用户主目录和所用shell,并设置密码
sudo useradd -d /home/ftpuser -s /bin/bash ftpuser
sudo passwd ftpuser
然后将目录/home/uftp的所属者和所属组都改为uftp:
sudo chown ftpuser:ftpuser /home/ftpuser
(c)新建/etc/vsftpd.user_list文件和/etc/vsftpd.chroot_list
在ect目录下,sudo touch vsftpd.user_list
编辑 sudo vi /etc/vsftpd.user_list
用于存放允许访问ftp的用户,那么输入用户1 用户2-->保存OK!以后还有其它用户使用ftp时直接添加用户名就可以了!
在ect目录下,sudo touch vsftpd.chroot_list
编辑 sudo vi /etc/vsftpd.chroot_list
添加不会被限制在主目录下的用户ftpwtt和uftp,那么输入ftpwtt,uftp-->保存以后还有其它用户使用ftp时直接添加用户名就可以了!
(d)使用gedit查看/etc/ftpusers文件中的内容(黑名单文件)
sudo vi /etc/ftpusers
该文件保存的是黑名单用户,不想在黑名单中,就去掉
2. 启动停止重启服务
sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop
sudo /etc/init.d/vsftpd restart
3. 访问ftp服务器
sudo ftp 127.0.0.1
浏览器访问
ftp://127.0.0.1
或者
ftp://localhost
远程访问时使用实际ip: ftp://your_ip
4. windows下简单有效地访问ftp服务器
我们有三种方式可以访问(假设服务器ip地址是:172.16.23.33)
(1)浏览器
在浏览器中输入ftp://172.16.23.33,运行结果如下:
(2)使用文件传输软件(比如8uftp):
按道理讲,访问权限仅限于xuanxufeng这个用户的主目录,但是这个软件真特么的强大,它竟然能越过我的主目录,访问整个系统!好怕怕=。=
另外,这里有乱码的问题,由于本篇文章的重点不在这,我也懒得管这个了,有兴趣的读者可以自己去试着去解决一下。
(3)最后,我来介绍一个最方便的方法~ Windows其实还挺方便的,也不是一无是处哈~
双击“计算机”,在地址栏输入:ftp://172.16.23.33/,然而并没有什么卵用....
不要着急嘛~ 右击一下,选择登陆~~~
现在是不是进来了呢?这个其实就对应Linux下xuanxufeng这个用户的主目录了!剩下的文件上传和下载就和Windows下文件操作一样了,是不是很方便!
---------------------------------我是分割线---------------------------------
好了,服务器搭建基本完成,以后服务器每多一个用户,就创建一个用户,然后在/etc/allowed_users中把这个用户添加进来就OK啦!
安装过程遇到问题及解决方法:
1.如果配置文件中有空格,将会报错,例子,etc/vsftpd.conf文件中有空格,执行sudo /etc/init.d/vsftpd start ftp服务器无法启动,解决方法执行/usr/sbin/vsftpd 会提示在哪一行报错
2. vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
http://blog.csdn.net/bluishglc/article/details/42399439
当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES