精华内容
下载资源
问答
  • Centos8搭建ftp服务器

    2021-03-10 22:22:30
    Centos8搭建ftp服务器 前言:小白一枚,今天自己搭建FTP服务器,按照网上各种教程进行安装,到最后怎么也不成功,万幸最后终于能用了,写这个贴子留存一下,避免大家继续踩坑。 环境:centos8 vsftpd 3.0 安装步骤 ...

    Centos8搭建ftp服务器

    前言:小白一枚,今天自己搭建FTP服务器,按照网上各种教程进行安装,到最后怎么也不成功,万幸最后终于能用了,写这个贴子留存一下,避免大家继续踩坑。
    环境:centos8 vsftpd 3.0
    安装步骤

    1. 安装vsftp

    执行代码

    yum install -y vsftpd
    
    1. 修改配置文件vi /etc/vsftp/vsftpd.conf
    anonymous_enable=NO    #进制匿名访问
    
    chroot_local_user=YES   #限制所有用户都在家目录
    
    chroot_list_enable=NO   #调用限制在家目录的用户名单
    
    chroot_list_file=/etc/vsftpd/chroot_list   #限制在家目录的用户名单所在路径设置参考
    
    chroot_list_enable=YES/NO(NO)
    
    设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
    
    chroot_list_file=/etc/vsftpd.chroot_list
    
    用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
    
    chroot_local_user=YES/NO(NO)
    
    用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
    
    通过搭配能实现以下几种效果:
    
    ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
    
    ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
    
    ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
    
    1. 创建ftp用户
    useradd ftpuser -d 【允许访问的ftp目录】 -s /sbin/nologin 
    
    1. 为用户设置密码
    passwd ftpuser
    # 输入两次密码,设置完成
    
    1. 启动vsftp服务
    systemctl start vsftpd.service
    

    以上步骤,即可完成初步配置,下面进行测试

    测试FTP登录

    这里使用的centos的ftp进行登录的,没有的可以先安装一下

    yum install ftp
    

    使用ifconfig命令查看本地的ip地址,这里就不进行演示了,
    然后直接进行登录

    [root@iZ2zeifxql4d9duz818vxyZ etc]# ftp [本地ip地址]
    Connected to 172.29.201.241 (172.29.201.241).
    220 (vsFTPd 3.0.3)
    Name (172.29.201.241:root): ftpuser
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> 
    

    至此,FTP服务器搭建完成。

    注:如果提示502,则是/etc/shells文件下配置有问题

    vi /etc/shells
    

    在最后一行添加以下代码

    /sbin/nologin
    
    展开全文
  • CentOS8搭建FTP服务器

    千次阅读 2020-01-01 05:00:54
    文章主要讲了CentOS8如何利用vsftpd搭建一个FTP服务器,然后进行简单的匿名上传/下载与用户上传/下载测试,还有使用了wget测试. 2 安装vsftpd yum install -y vsftpd 3 开启服务 service httpd start 4 设置开机启动...

    2021.2.20 更新

    1 概述

    文章核心:

    • CentOS8使用vsftpd搭建FTP服务器
    • 安装以及测试的详细过程

    2 安装

    2.1 安装vsftpd+ftp

    sudo yum install -y vsftpd
    sudo yum install -y ftp # 测试使用,搭建FTP服务器只需要vsftpd
    

    2.2 开启服务

    systemctl start vsftpd
    

    2.3 设置开机启动(可选)

    可以用

    systemctl list-unit-files | grep vsftpd
    

    查看是否开机启动,笔者机器上显示disabled

    在这里插入图片描述

    通过

    chkconfig vsftpd on
    

    开启自启,再次执行systemctl,可以看到变成了enabled

    2.4 修改配置文件

    配置文件默认为/etc/vsftpd/vsftpd.conf

    sudo vim /etc/vsftpd/vsftpd.conf
    

    首先修改anonymouse enable=YES,再添加一行anon_upload_enable=YES

    在这里插入图片描述

    第一行的意思是允许匿名登录,第二行的意思是允许匿名上传,接着重启服务:

    systemctl restart vsftpd
    

    3 测试准备

    安装部分就算完成了,下面是测试。测试分为:

    • 浏览器测试
    • ftp命令测试

    而为了测试权限,两者又分为:

    • 匿名测试
    • 用户登录测试

    另外为了测试的完整还加入了wget的下载测试。

    在测试之前先创建测试文件:

    cd /var/ftp/pub
    sudo vim test
    

    在这里插入图片描述

    4 浏览器测试

    4.1 匿名测试

    ifconfig获取内网ip,在浏览器中输入ftp://ip

    在这里插入图片描述

    可以看到有一个pub文件夹,里面有刚才新建的test文件:

    在这里插入图片描述

    在这里插入图片描述

    右键保存即可下载文件:

    在这里插入图片描述

    下载完成。

    在这里插入图片描述

    去终端看看:

    在这里插入图片描述

    4.2 用户登录测试

    输入

    ftp://username@ip
    

    在这里插入图片描述

    再输入用户密码即可登录成功。默认访问的是用户根目录下的文件:

    在这里插入图片描述

    下载的话同上,右键选择下载即可。

    5 ftp命令测试

    首先安装ftp

    
    

    5.1 匿名测试

    ftp ip
    

    ftp为默认的匿名登录用户名,至于密码,可以在/etc/vsftpd/vsftpd.conf中设置一个

    no_anon_password=YES
    

    这样匿名用户可以空密码登录。

    在这里插入图片描述

    5.1.1 上传测试

    直接使用put命令,后面接上文件,这里的upload.txt是执行ftp之前的所在文件夹下的upload.txt

    在这里插入图片描述

    这里提示不能创建文件,是权限的原因,要确保/var/ftp/pubother用户有写权限:

    在这里插入图片描述

    默认的/var/ftp/pub的权限是644,修改成647

    sudo chmod 647 /var/ftp/pub
    

    同时修改上传文件的权限,允许other用户可读:

    sudo chmod 644 /root/upload.txt
    

    如果不行,可以使用selinux设置ftpd_full_access

    getsebool -a | grep ftp
    

    在这里插入图片描述

    ftpd_full_access开启:

    setsebool ftpd_full_access on
    

    在这里插入图片描述

    再进入upload.txt所在的文件夹,执行ftp,再次put

    在这里插入图片描述

    成功!

    在这里插入图片描述

    5.1.2 下载测试

    直接get文件即可,由于上面已经设置好了权限,所以不会出现问题。

    在这里插入图片描述

    在这里插入图片描述

    若出现权限问题可从三方面入手:

    • /var/ftp/pub的对other用户的可读权限:因为是下载,而且匿名,所以只需要对other用户的可读权限
    • 被下载文件的对other用户的可读权限
    • selinux的问题,设置ftpd_full_accesson

    5.2 用户登录测试

    执行ftp时用对应用户名与密码登录:

    在这里插入图片描述

    默认进入了用户根目录。

    5.2.1 上传测试

    直接put即可:

    在这里插入图片描述

    在这里插入图片描述

    若出现权限问题参照上面5.1.2的那三种方法。

    5.2.2 下载测试

    随便在用户根目录新建一个文件,这里是kr:

    在这里插入图片描述

    直接get即可:

    在这里插入图片描述

    在这里插入图片描述

    6 wget测试

    wget用来下载文件,初始下载的目录与ftp登录时的目录一致:

    • 匿名登录ftp,登录的是/var/ftp目录,则wget会从这个/var/ftp目录下载文件,下载到执行wget命令所在的目录
    • 使用用户kr登录ftp,则登录的是/home/kr目录,wget会从/home/kr下载文件

    6.1 匿名测试

    注意,请确保被下载文件对other用户有可读权限:

    sudo chmod o+w xxxxxx
    

    然后使用wget

    wget ftp://ip/pub/xxxx
    

    在这里插入图片描述

    在这里插入图片描述

    6.2 用户登录测试

    使用--ftp-user--ftp-password指定用户名与密码,其余同上:

    wget ftp://ip/xxx --ftp-user=xxxx --ftp-password=xxxx
    

    在这里插入图片描述

    成功。

    7 总结

    总结一下步骤:

    • 安装好ftpvsftpd
    • 修改配置文件(/etc/vsftpd/vsftpd.conf
    • 添加对操作的文件的相应权限

    对于不能上传与下载的原因,基本上都是权限的问题,主要就是三方面:

    • ftp目录的权限:比如可以是/var/ftp/pub没有对应的写权限导致上传失败,没有对应读权限导致下载失败
    • 被上传文件的权限:比如被上传的文件没有读权限导致上传失败
    • selinux:使用setsebool设置ftpd_full_accesson

    解决权限问题后,基本就可以通过ftp/wget顺利地使用这个ftp服务器上传/下载文件了。

    8 还有疑问?

    可以在评论留言大家一起讨论。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,261
精华内容 11,304
关键字:

centos8搭建ftp服务器