看了网上很多关于Ubuntu下vsftpd的安装配置教程之后,发现虽然大部分功能都能使用,但是我最关心的上传下载这个关键功能没有办法实现,然后经过多次尝试,终于完成了最后的配置,同时本地Windows系统可以实现上传文件到服务器和下载文件到本地。附一张完成图片
这些都是基于登陆之后才能使用的操作,不用担心安全问题
第一步:安装vsftpd
sudo apt-get install vsftpd
安装完成后启动vsftpd服务
service vsftpd start
之后每次配置完文件或者修改配置文件之后记得一定要service vsftpd restart
第二步:新建目录 /home/uftp
sudo mkdir /home./utfp
关于这里(要说明的是连接远程服务器的时候你最好创建一个新的用户,这样安全点,不要用root账户,这里就涉及到需要将你新添加的用户设置可以使用sudo权限,不然会报错)
1.切换到root用户下
su root
2.添加sudo文件的写权限,命令是:
chmod u+w /etc/sudoers
3.编辑sudoers文件(这里注意的是插入的时候要先键盘按“i”表示插入,然后才能进行修改操作)
vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
4.撤销sudoers文件写权限,命令:
chmod u-w /etc/sudoers
第三步:新建用户uftp,制定用户主目录和所用shell,并设置密码
sudo useradd -d /home/uftp -s /bin/bash uftp
然后将目录 /home/uftp 的所属者和所属组改成uftp
sudo chown uftp:uftp /home/uftp
第四步:新建文件 /etc/vsftpd.user_list ,用于存放允许访问ftp 的用户
sudo vi /etc/vsftpd.user_list
在其中添加用户uftp,并且保存退出
第五步:编辑vsftpd配置文件
sudo vi /etc/vsftpd.conf
修改如下:
- 修改write_enable=YES
- 添加userlist_file=/etc/vsftpd.user_list
- 添加userlist_enable=YES
- 添加userlist_deny=NO
修改之后保存退出,按“ESC”之后输入“:wq”确定
正常的话到这里基本就配置好了,但是我遇到的问题是可以登陆但是下载或者上传的话会被拒绝服务
所以需要排查问题,经过研究与测试发现,原来需要将第四步的管理者权限添加到所属的属性中去,这样就可以访问因为权限的问题而无法上传和下载啦
解决方案:
sudo vi /etc/vsftpd.user_list
继续添加一行root(命令类似之前的uftp)
保存退出之后重启ftp服务就可以愉快的下载和上传文件啦。
参考资料:
https://www.cnblogs.com/zox2011/archive/2013/05/28/3103824.html
https://m.linuxidc.com/Linux/2017-06/144807.htm&http:/m.linuxidc.com/Linux/2017-06/144807.htm