linux下FTP服务器搭建教程1
你买了个主机就像是买了块地皮,搭建FTP就像是盖房子,我在地皮上建房子,然后创建的用户就像是钥匙,我给谁钥匙(权限),谁就可以到我家去玩,去放东西,拿东西。
虽然我们买不起现实的房子,但是我们可以买互联网上的房子啊,哈哈哈。
本教程1是在ubuntu 16 64位的服务器版本下实际搭建成功过的。
搭建ftp服务器大致分为如下几个步骤:
1安装vsftpd
2创建ftp服务器默认文件夹,并授权
3创建ftp用户
4修改vsftpd的配置文件
5重启服务
6客户端的登录与上传
7登陆失败常见问题
(教程里的命令不一定适合所有版本和系统,具体的命令请先思考是否正确再去使用)
1安装vsftpd
ubuntu下安装vsftpd,可以使用内置的apt工具,具体的命令是sudo apt-get install vsftpd
apt工具会自动安装以及配置,然后配置文件的在 /etc/vsftpd.conf 里面。
然后使用 sudo service –status-all 命令查看vsftpd服务是否开启了。
[ - ] sendsigs
[ + ] ssh
[ + ] udev
[ + ] ufw
[ - ] umountfs
[ - ] umountnfs.sh
[ - ] umountroot
[ - ] unattended-upgrades
[ + ] urandom
[ - ] uuidd
[ + ] vsftpd
[ - ] x11-common
可以看到vsftpd前面是个加号,证明以及安装成功,并且服务以及开启了。
2创建ftp服务器默认文件夹,并授权
#使用mkdir命令创建ftp默认文件夹
sudo mkdir /home/uftp
#给文件加权限,让文件拥有所有权限,可读写
chmod 777 /home/uftp
3创建ftp用户
#实际上这一步就是利用了linux分用户使用的特性,创建了一个用户,这个用户只被赋予了对指定目录特定的权限。
sudo useradd -d /home/uftp -s /bin/bash uftp
#设置用户uftp的登录密码,这里会让你输出两次密码
sudo passwd uftp
4修改vsftpd的配置文件
总的来说就是允许修改,允许上传与下载,创建用户表,用户表生效,这几个方面的命令。
#使用vim去修改配置文件,关于vim的使用请先行学习
sudo vim /etc/vsftpd.conf
#打开conf文件后会出现很多注释掉的配置以及对应的解释,蓝色的字体比较难看清,可调高屏幕亮度
修改点
# Uncomment this to allow local users to log in.
local_enable=YES
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#下面这条是允许匿名用户可上传,初学者可以打开,但是不安全,还有条匿名用户下载的这里没有写,也需要加上
#anon_upload_enable=YES
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
chown_uploads=YES
chown_username=whoever
向文件中添加”userlist_deny=NO
userlist_enable=YES userlist_file=/etc/allowed_users”
和”seccomp_sandbox=NO”–>使文件中的”local_enable=YES”–>保存。
注意,还需要创建allowed_users文件,不过这里使用vim打开不存在的文件时会自动创建。
sudo vim /etc/allowed_users
打开后是一个空白的文件,添加用户,uftp,保存退出即可。
5重启服务
#使用service命令
sudo service vsftpd restart
#然后再去查看vsftpd的服务状态,确保正在运行
sudo service --status-all
6客户端的登录与上传
我是使用的是filezilla,需要填写主机,用户名,密码,端口。
主机就是自己的远程主机的IP
用户名 uftp
密码即之前创建用户设置的内容
端口 22(我自己的远程21用不了,写的是22)
登陆后我这里就会解析出远程ftp上的路径内容
7登陆失败常见问题
A、vsftpd配置文件设置的不全,相应的权限没有打开
仔细阅读config里面注释,写的很详细,将对用的权限打开
B、排错思路:
1、查看要上传的文件权限,发现我新建的testfile 文件权限为-rw-r–r–,应该不是这个文件权限的问题,不过为了排除,还是修改了权限,改成所有权限都有,chmod 777 testfile
2、修改权限之后,重新修改,发现还是denied,上网查,有同学指出修改配置文件中的参数,在/etc/vsftpd.conf配置文件最后增加一行即可:write_enable=YES,检查/etc/vsftpd.conf配置文件中的write_enable,发现它的默认值是YES,排除这个原因
3、接下来考虑是不是pub文件夹权限问题,ftp>ls 查看pub文件夹详细信息(要先ftp>cd ..返回上一级目录),发现pub文件夹具有所有的权限,排除这个因素
4、设置/etc/vsftpd.conf配置文件中的anonymous_enable=YES,anon_upload_enable=YES,anon_mkdir_write_enable=YES,修改完毕后,重启ftp服务,重新连接
上面的这个思路第4条风险非常大,匿名用户可以上传内容,也可以创建文件,也就意味着别人可以在你的家里为所欲为,不过初学还是可以打开的。
linux下FTP服务器搭建教程1的更多相关文章
- 《Linux下FTP服务器搭建及FTP使用》
.LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...
- linux下ftp服务器搭建
1.yum install vsftpd 使用yum安装ftp 2.创建并授权ftp文件目录 mkdir -P /ftp/ftpadmin chmod -R 777 /ftp/ftp ...
- Linux下DNS服务器搭建详解
Linux下DNS服务器搭建详解 DNS 即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...
- linux下的服务器搭建集成环境
linux下的服务器搭建集成环境 ——写给初学者的我们 1.准备工具 1.1 SecureCRT SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录 ...
- Linux下dns服务器搭建
Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...
- Linux下SVN服务器搭建配置
Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...
- Linux 之 FTP服务器搭建
FTP服务器搭建 参考教程:[千峰教育] 1.关闭防火墙: service iptables stop 2.关闭Selinux setenforce 0 3.安装所需要依赖及编译工具 yum inst ...
- Linux中ftp服务器搭建
一.FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp ...
- 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)
注:个人对偏向于底层基本上拿来就用的应用,倾向于使用安装包,直接yum或者rpm安装:而对于应用层面控制较多或者需要大范围维护的,倾向于直接使用tar.gz版本. 对于linux下的ftp服务器,实际 ...
随机推荐
- Java面向对象之抽象类,接口
抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 抽象方法: 声明而未被实现的 ...
- 玲珑杯 Round #11 (1001 1004 1007)
比赛链接 直接贴代码.. #include<bits/stdc++.h> using namespace std; typedef long long LL; int main() { L ...
- Spring MVC的实现原理
Spring提供了DispatcherServlet,这个类不仅负责实现请求转发,还负责启动一个WebApplicationContext容器. 按照Spring一贯的IoC哲学,所有的Control ...
- (转)JAVA反射机制理解
JAVA反射机制: 通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们. 理论的东东太多也没 ...
- 【JAVASCRIPT】React学习- 杂七杂八
摘要 记录 React 学习中的小细节 setState setState 有一定的时间延迟,如果需要保证 setState 之后执行某些动作,可以采用以下方法 this.setState({ vis ...
- 浅谈layer.open的弹出层中的富文本编辑器为何不起作用!
很多童鞋都喜欢用贤心的layui框架.是的,我也喜欢用,方便,简单.但是呢,有时候项目中的需求会不一样,导致我们用的时候,显示效果可能会不一样,好吧.这样的话,个别遇到的问题总是解决不好,但是呢还是那 ...
- Qt之对话框消失动画
一.效果展示 最近做了一个提示框消失的功能,觉着挺有意思,以前一直以为Qt子窗口不能做淡出效果,其实Qt的淡出功能已经帮我们封装好了,我们仅仅只需要几行代码就可以做出酷炫的窗口关闭效果,写此篇文章的时 ...
- UITabbarController左右滑动切换标签页
UITabbarController左右滑动切换标签页 每个Tabbar ViewController都要添加如下代码,建议在基类中添加:ViewDidLoadUISwipeGestureRecogn ...
- Log4Net .NET log处理
1.NuGet 安装Log4Net. 2.新建一个Common的project,并且添加一个LogWriter的类: public class LogWriter { //Error log publ ...
- 编写一个简单的TCP服务端和客户端
下面的实验环境是linux系统. 效果如下: 1.启动服务端程序,监听在6666端口上 2.启动客户端,与服务端建立TCP连接 3.建立完TCP连接,在客户端上向服务端发送消息 4.断开连接 实现 ...