• 005.FTP本地用户访问


    一 新建本地用户

      1 [root@imxhy ftp]# useradd ftpuser	#用于登陆ftp的用户
      2 [root@imxhy ftp]# passwd ftpuser
      3 Changing password for user ftpuser.
      4 New password:
      5 Retype new password:
      6 passwd: all authentication tokens updated successfully.

    二 本地用户配置项

    2.1 基础配置

      1 local_enable=YES			#允许本地用户登陆
      2 write_enable=YES			#允许本地用户上传
      3 local_umask=022			#设置上传的默认文件权限

    2.2 安全选配

      1 chroot_local_user=YES			#开启用户目录限制,把所有用户都限制在用户主目录中
      2 chroot_list_enable=YES			#开启允许访问任何目录的功能
      3 chroot_list_file=/etc/vsftpd/chrot_list	#允许访问任何目录的用户依据文件保存位置

    三 重启ftp服务

      1 [root@imxhy ~]# service restart vsftpd		#Centos6系列
      2 [root@imxhy ~]# systemctl restart vsftpd	#Centos7系列

    四 测试登陆

    注意:本地用户登陆后默认的主目录为该用户的家目录:/home/【用户名】

      1 E:Temp>ftp 192.168.10.10
      2 连接到 192.168.10.10。
      3 220 (vsFTPd 3.0.2)
      4 用户(192.168.10.10:(none)): ftpuser
      5 331 Please specify the password.
      6 密码:
      7 230 Login successful.
      8 ftp> pwd
      9 257 "/home/ftpuser"

    五 测试上传及下载

    5.1 上传测试

      1 ftp> put ftpuser_upload.txt			#上传至服务端
      2 200 PORT command successful. Consider using PASV.
      3 150 Ok to send data.
      4 226 Transfer complete.

    5.2 下载测试

      1 [root@imxhy ftp]# cd /home/ftpuser/
      2 [root@imxhy ftpuser]# touch ftpuser_down.txt	#新建用于测试的文件
      3 ftp> get ftpuser_down.txt			#下载至本地
      4 200 PORT command successful. Consider using PASV.
      5 150 Opening BINARY mode data connection for ftpdown.txt (0 bytes).
      6 226 Transfer complete.

    六 修改主目录配置

    注意:本地用户登陆后默认的主目录为该用户的家目录:/home/【用户名】

    6.1 添加配置项

      1 local_root=/tmp/ftpuser		#选配:设置所有本地用户的FTP根目录,但此配置无法区分不同用户
      2 local_max_rate=0		#选配:限制最大传输速率(字节/秒)

    6.2 查看修改后的目录权限

      1 [root@imxhy ~]# ll -d /tmp/ftpuser
      2 drwxr-xr-x. 2 root root 6 Aug 28 19:39 /tmp/ftpuser/

    6.3 新建ftp用户组

      1 [root@imxhy ~]# groupadd ftpgroup		#创建ftp用户组
      2 [root@imxhy ~]# gpasswd -a ftpuser ftpgroup	#将ftpuser添加到组

    6.4 修改文件所属组

      1 [root@imxhy ~]# chown root:ftpgroup /tmp/ftpuser/
      2 #将/tmp/ftpuser/目录所属组改为ftpgroup
      3 [root@imxhy ~]# chmod 775 /tmp/ftpuser/		#修改权限为775,使所属组具备可读写执行权限
      4 [root@imxhy ~]# ls -ld /tmp/ftpuser/		#查看/tmp/ftpuser/目录权限
      5 drwxrwxr-x. 2 root ftpgroup 21 Aug 28 19:42 /tmp/ftpuser/

    注意:

    1:强烈不建议将主目录中其他人权限改为可读写且执行。

    2:同时也不建议将/tmp/ftpuser主目录所属人改为ftpuser(会报错)。

    6.5 测试上传及下载

      1 E:Temp>ftp 192.168.10.10
      2 连接到 192.168.10.10。
      3 220 (vsFTPd 3.0.2)
      4 用户(192.168.10.10:(none)): ftpuser
      5 331 Please specify the password.
      6 密码:
      7 230 Login successful.
      8 ftp> pwd					#查看当前目录(不再是默认目录)
      9 257 "/tmp/ftpuser"
     10 ftp> get down.txt				#下载文件
     11 200 PORT command successful. Consider using PASV.
     12 150 Opening BINARY mode data connection for down.txt (0 bytes).
     13 226 Transfer complete.
     14 ftp> put upload.txt				#上传文件
     15 200 PORT command successful. Consider using PASV.
     16 150 Ok to send data.
     17 226 Transfer complete.

    七 总结

    • 1 默认上传目录建议为:/home/【用户名】。
    • 2 如允许上传,服务权限和系统目录权限必须同时具备。
    • 3 本地用户访问传输的密码为明文,存在安全隐患。
    • 4 本地用户连接方式,无论是否采用默认的主目录(/home/【用户名】)还是自定义的主目录(/tmp/ftpuser)
    • 都能通过cd切换到其他任意目录,从而下载任意文件。因此chroot_local_user=YES必须限制。
    • 5 可将允许随意切换目录的用户写入/etc/vsftpd/chrot_list,从而针对特定用户限制主目录。
  • 相关阅读:
    C#通过反射获取类中的方法和参数个数,反射调用方法带参数
    C#利用WinRAR实现压缩和解压缩
    C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
    C#使用Linq To XML读取XML,Linq生成XML,Linq创建带属性或带节点XML
    MVC使用Newtonsoft无需实体类,实现JSON数据返回给前端页面使用
    JSON对象与字符串之间的相互转换
    Javascript正则表达式详细讲解和示例,通俗易懂
    C#比较两个list集合,两集合同时存在或A集合存在B集合中无
    Uploadify 3.2上传文件,限制类型,大小,传递参数等
    c# 反射得到实体类的字段名称和值,DataTable转List<T>
  • 原文地址:https://www.cnblogs.com/itzgr/p/9890853.html
Copyright © 2020-2023  润新知