linux下使用ftp共享文件

  1. 安装ftp(如果没有安装)
sudo apt install vsftpd
  1. 创建访问用户
    以下命令创建一个guest用户并更改其主目录为要分享的文件夹的根目录,这样在下面设置ftp时限制登录用户在其主目录中可以让用户ftp登录时即进入到要共享的文件夹中,且不允许到这个文件夹外面去。
anonymous=NO                         #禁止匿名访问
sudo useradd guest
sudo passwd guest
sudo usermod -d 共享文件夹的根目录 guest
sudo usermod -s /sbin/nologin guest  #限制用户登录,guest用户只能作为ftp访问用户登录

注意:下面的设置要限制登录用户在自己的主目录下,这里需要将guest的主目录改成不可写模式,否则会访问失败=>sudo chmod -w guest主目录
更正:以上sudo usermod -s /sbin/nologin guest不知道为什么会导致ftp无法登录,所以改回了/bin/bash,但是这样的话该用户也可以ssh远程登录,为了禁止其远程登录,参考这篇博客直接在ssh的配置文件中设置允许ssh登录的用户就可以了=>

vim /etc/ssh/sshd_config
#添加一行
AllowUsers root  #没有添加guest用户所以其无法远程ssh登录
#保存修改后重启下ssh服务
systemctl systemctl restart sshd.service
  1. 配置ftp
    编辑ftp配置文件/etc/vsftpd.conf(一般会自动生成);参考注释,把自己想要的选项去掉注释或者不想要的选项注释掉,我用的是默认,改了以下几个:
listen=YES               #让ftp自己监听网络端口(应该),根据man手册,这种方式使用更简单
local_umask=022          #设置本地用户权限为755(即777-022)
chroot_local_user=YES    #改变根目录至用户目录(禁止登录用户访问主目录以外的目录)
chroot_list_enable=YES   #限制哪些登录用户在其主目录中;下一选项的文件指定哪些用户受此限制
chroot_list_file=/etc/vsftpd.chroot_list

创建并编辑/etc/vsftpd.chroot_list文件,一行一个用户名,指定哪些用户需要限制在其主目录中。比如这里对外开了一个guest用户,则只要限制guest用户在其主目录中即可。
更正,虽然不太清楚为什么,但是将guest添加到vsftpd.chroot_list中好像是把guest拉进了黑名单,怎么也无法登录;相反,我使用其他本地用户时可以登录ftp且限制在主目录;当将guest移出vsftpd.chroot_list后发现可以登录=>说明确实是类似黑名单的作用。

  1. 重启ftp服务
/etc/init.d/vsftpd restart  #重启vsftpd服务器(ubuntu下)
service vsftpd start        #重启服务(ubuntu下)
#在centos下重启vsftpd服务
systemctl restart vsftpd.service
systemctl status vsftpd.service  #查看状态
  1. 登录ftp链接下载文件
    使用ifconfig查看本机ip地址,然后在网页或者ftp软件中输入网址ftp://192.xxx.xxx.xxx,然后输入用户名guest及其密码即可访问ftp服务器上文件。

注意:ftp分享文件夹需要有公网ip,否则只能在同一局域网下访问——可以在有公网ip的服务器上配置以上ftp服务;也可以采用内网穿透的方法,将内网ip映射到自定义域名上,然后借由一个有公网ip的服务器做一下端口映射,我使用的是nat123,让自己个人电脑上的ftp服务可以在非同一局域网下访问,参考以下教程:

vim /etc/vsftpd/vsftpd.conf
#修改以下配置
pasv_enable=YES         #开启被动模式
pasv_min_port=xxxx      #随机最小端口,按照nat123的配置,最小端口与最大端口设为同一个
pasv_max_port=xxxx      #随机最大端口
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值