linux下FTP服务器搭建教程1

时间:2023-03-09 01:32:22
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条风险非常大,匿名用户可以上传内容,也可以创建文件,也就意味着别人可以在你的家里为所欲为,不过初学还是可以打开的。