linux搭建ftp服务-ftp服务器搭建和ftp客户端使用

本地用户生效配置


  • 不知道有没有必要解释下本地用户生效的意思

  • 就是说 下面功能仅对 服务端上的用户生效,不是服务端上的用户名,一律阻止【不允许访问】

  • 查看本地用户,目录:/etc/passwd

在服务端虚拟机上查看,这种就是普通用户

[root@centos76_2 pub]# tail -n 3 /etc/passwd

ccx❌1000:1000:ccx:/home/ccx:/bin/bash

ccx1❌1001:1001::/home/ccx1:/bin/bash

ccx2❌1002:1002::/home/ccx2:/bin/bash

[root@centos76_2 pub]#

创建本地ftp用户

  • useradd username -s /sbin/nologin# 创建 只允许ftp登陆的用户名

  • 注: 查看路径为:/etc/passwd,如下面ccx和ccx2用户编译器为:/sbin/nologin

[root@centos76_2 ccx]# tail -n 4 /etc/passwd

ccx❌1000:1000::/home/ccx:/sbin/nologin

ccx1❌1001:1001::/home/ccx1:/bin/bash

ccx2❌1002:1002::/home/ccx2:/sbin/nologin

ccx3❌1003:1003::/home/ccx3:/bin/bash

[root@centos76_2 ccx]#

  • 如果无法通过/sbin/nologin用户登陆,一直报530认证失败,但普通用户却可以正常登陆

[root@centos76_1 ~]# ftp 192.168.59.129

Connected to 192.168.59.129 (192.168.59.129).

220 (vsFTPd 3.0.2)

Name (192.168.59.129:root): ccx

331 Please specify the password.

Password:

530 Login incorrect.

Login failed.

原因:vsftpd默认会检查用户的shell,如果用户的shell在/etc/shells没有记录,则无法登陆ftp

解决办法:在服务端的/etc/shells文件里面添加用户的shell(解释器)

vim /etc/shells #添加一行/sbin/nologin即可

在这里插入图片描述

关闭匿名登陆功能

  • 1、修改主配置文件/etc/vsftpd/vsftpd.conf开启本地用户权限(关闭匿名用户)

[root@centos76_2 pub]# vim /etc/vsftpd/vsftpd.conf

#将下面这个的YES改为NO

anonymous_enable=NO

上面配置文件中的YES改为NO重启vsftpd服务以后,再次访问就需要让登陆了(Windows访问)。

在这里插入图片描述

  • 2、修改权限

如果你是能够链接到FTP 但是看不到文件 上传和下载都没有办法做出操作,再做下面操作

执行getsebool -a | grep ftp,可以看到下面红圈中2个为off状态

在这里插入图片描述

执行2个命令将她们开启:

[root@centos76_2 pub]# setsebool -P allow_ftpd_full_access on

[root@centos76_2 pub]# setsebool -P sftp_home_dir on

开启后状态就为on了

在这里插入图片描述

开启上传、下载、删除功能

[root@centos76_2 ccx]# vim /etc/vsftpd/vsftpd.conf

write_enable=YES

[root@centos76_2 ccx]# systemctl restart vsftpd

注:关闭匿名登陆以后,默认目录不在是/var/ftp/put了,而是 用户的目录【/home中,比如ccx用户,则默认目录就是/home/ccx】,关闭匿名登陆以后,访问方法是ftp://ip进去默认就是家目录,如果后面跟路径了,可能就回报550权限问题了【限windows】

测试

我先在ccx家目录中创建一些文件,可以看到ccx用户的编译器是nologin的哦。

在这里插入图片描述

打开windows,输入:ftp://ip,输入用户名和密码

在这里插入图片描述

登陆以后就可以看到了这些文件了

在这里插入图片描述

上传下载删除新建都是可以正常使用的在这里插入图片描述

敲黑板,注意,我上面说过这段话,如果没注意看,可能就会产生下面错误了

在这里插入图片描述

我现在访问在位置栏输入:/ftp://ip/pub/访问就会报下面的550错误,这个是无法解决的!!!

在这里插入图片描述

修改默认家目录

如果不修改的话,我们通过不同用户登陆进去的,都是在这个用户的家目录里面【比如:/home/ccx, /home/ccx1, /home/ccx2】

但是修改了这个默认家目录以后,所有的用户登陆进去都在这个指定目录里面了。

这个不建议配置,除非你知道自己的在干什么。

一般情况都是不修改默认目录,但开启目录限制,就是每个用户登陆进去只能看到自己家目录的内容不能切换到其他目录【一般在linux上可以体现,linux可以cd切换目录,下面有说明】

新增行: local_root=/data/ccx #后面/data/ccx为路径

为路径根文件设置777权限,否则后面会无法操作:chmod 777 -R /data 【家目录不用是修改是因为家目录默认777权限】

[root@centos76_2 ccx]# vim /etc/vsftpd/vsftpd.conf

新增在任意位置即可

local_root=/data/ccx

allow_writeable_chroot=YES #2.3.5之后,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,需新增此配置

[root@centos76_2 ccx]# mkdir -p /data/ccx #创建默认目录

[root@centos76_2 ccx]# chmod 777 -R /data

[root@centos76_2 ccx]#

[root@centos76_2 ccx]# touch /data/ccx/test{1…3} #创建几个默认文件夹测试用

[root@centos76_2 ccx]# ls /data/ccx/

test1 test2 test3

[root@centos76_2 ccx]#

[root@centos76_2 ccx]# systemctl restart vsftpd

测试

我使用ccx1这个用户测试,我先在这个家目录下创建几个文件,以便于后面区别是否配置成功

[root@centos76_2 ccx]# cd

[root@centos76_2 ~]# touch /home/ccx1/ccx1{1…3}

[root@centos76_2 ~]# ls /home/ccx1

ccx11 ccx12 ccx13

我们在地址栏把这个/去掉回车就可以重新登陆了哦【windows】

  • 13
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值