zoukankan      html  css  js  c++  java
  • linux之FTP服务

    1.ftp简介

    FTP(File Transfer protocol 文件传输协议):是一种非常古老的协议,tcp/ip协议刚诞生不久,文件共享传输成为一种最迫切的应用,这种协议非常古老,所以在设计时,很多地方都没有考虑到,只要让协议能工作就行

    ftp:分命令连接(客户端到服务器端)和数据连接.(服务器端到客户端)

    get 下载文件的命令   put 上传命令   bye 断开连接

    跨主机通信的套接字:ip+端口号

    ftp比较独特,不会在发送命令的这个信道上下载.但是一直保持此信道一直到bye会重新再起一个连接,在另一套接字上进行数据的传输,数据连接结束,本次连接断开.

    ftp服务器端发(5,23),客户端找端口:5*256+23=1303

    2.数据连接的两种模式

    主动模式:CIP  CPort+1  SPort(20)   SIP

    服务器主动连接客户端端口,+1或依次加1到未被占用的端口

    缺陷:如果一个端口被占用了,别的进程就不能用了

    被动模式:CIP  CPort+1  SPort(随机端口)   SIP

    命令连接会反馈回来两个数字用于提供随机端口

    连接追踪机制:主动被动都是针对服务器端而言的

    服务端安装:

    1.FTP的安装、目录查询:

     yum install vsftpd  //安装

    rpm -ql vsftpd    //查询

    /etc/logrotate.d/vsftpd     //日志滚动脚本

    /usr/rc.d/init.d/vsftpd //服务脚本

    /etc/vsftpd/vsftpd.conf //主配置文件

    其他几个都是用户控制文件

    /var/ftp  //数据文件存放目录

    /var/ftp/pub   //共享目录

    2.启动FTP服务(端口号21)

    启动:service vsftpd start

    查询FTP的端口号:netstat -tunpl | grep 21

    3.FTP访问

    Windows中通过浏览器进行访问,如ftp服务器ip为192.168.88.4,则可输入ftp://192.168.88.4/进行访问。

    说明:此时可以下载不能上传.访问的目录是: /var/ftp

    客户端的上传、服务器反馈:

     

    FTP的客户端的安装

    1、安装、查询

    yum install ftp

    rpm -ql ftp

    2.客户端的FTP的登录

      1.系统用户(默认登录用户)   --服务器上的用户

    直接命令里:ftp  192.168.88.4            ---192.168.88.4为ftp服务端ip

         2.匿名用户  anonymous  密码是为空的

     若想用匿名用户登录则输入:anonymous--匿名用户.密码为空,直接回车.

    ftp 192.168.88.4        ---登录ftp

    anonymous

    get passwd              ---下载文件下载到登录ftp时的目录中

    bye/exit                ---退出ftp的两种方式

    linux里这个ftp客户端不支持下载目录,只支持下载文件.

    注意:下载后文件自动放在进入ftp时的路径里.


    3.匿名用户上传文件ftp

    1)保证匿名用户能够登录ftp并且有上传文件的权限

    vim /etc/vsftpd/vsftpd.conf

    anonymous_enable=YES  --默认情况下 保证能登录

    local_enable=YES    ---本地的用户能登录ftp

    anon_upload_enable=YES   --保证能上传 手工打开 并重启vsftpd服务

    2)授予用户ftp对目录/var/ftp的写权限(匿名用户和ftp用户是一回事,登录密码都为空,但一定要有用户,不可为空.

    setfacl -m u:ftp:rwx /var/ftp

    此时用匿名用户登录ftp时会报以下的错误:

    500 OOPS: vsftpd: refusing to run with writable anonymous root

    Login failed.

    所以,需要先清除掉:setfacl -b /var/ftp

    在授予下面的pub的目录的权限:setfacl -m u:ftp:rwx /var/ftp/pub

    需要切换到pub目录后再上传.注意一定要有x权限,才能cd pub.

    3)上传文件put file

    说明:可以用!ls查看本地的文件。上传文件时,只能上传登录ftp所在目录的文件.

    4、怎样使用户能够创建目录?

    1)打开权限vim /etc/vsftpd/vsftpd.conf

    anon_mkdir_write_enable=YES  --保证能创建目录

    然后重启服务.service vsftpd restart

    2)匿名用户切换到pub目录之后,这是前提

    mkdir haha

    说明:因为匿名用户只有对pub目录有权限,只能切换到pub中创建

     

    5.怎样使用户能够删除目录?

    1)打开权限  vim /etc/vsftpd/vsftpd.conf

    添加一行:anon_other_write_enable=YES

    2)切换到pub目录中

    delete 文件名  rm/rmdir 目录名

    说明:删除文件保证先对目录有权限,还是在pub目录中操作

    6.怎么限制用户不能登录只能传输ftp?

    vim /etc/passwd   shell修改为sbin/nologin 就会不能登录,仅仅能传输ftp文件

    lisi:x:1002:1002::/home/lisi:/bin/bash       ---修改前

    lisi:x:1002:1002::/home/lisi:/sbin/nologin    ----修改之后

    说明:1 修改用户的shell之后,用户不能登录了,但依然是这个系统的普通用户

        2 这种情况在实际的生产中是比较常用的,限制用户仅仅只是做传输

        3 /bin目录中是没有nologin的命令的,验证命令如下所示:

    [root@master bin]# ls -l /bin|grep nologin

    [root@master bin]# ls -l /sbin|grep nologin

    -rwxr-xr-x. 1 root root    7816 Aug  6  2013 nologin

    如果/etc/passwd文件修改错了,文件不报错,很不容易发现问题

     

    7.怎么限制所有用户仅仅是在自己的家目录中?

    vim /etc/vsftpd/vsftpd.conf

    chroot_local_user=YES    ---限制的是所有的用户只能在自己的家目录中

    service vsftpd restart

     

    8、如何限制仅仅是lisi用户在自己的家目录中?

    1)修改配置文件如下所示:vim /etc/vsftpd/vsftpd.conf

    #chroot_local_user=YES    --限制所有用户的注销掉

    chroot_list_enable=YES   --打开仅仅限制用户的列表

    chroot_list_file=/etc/vsftpd/chroot_list  --用户列表位置

    2)修改用户列表的配置文件

    vim /etc/vsftpd/chroot_list

    lisi

    lisi就是chroot,其它用户没有chroot限制

    3)重启ftp服务,并登陆ftp验证service vsftpd restart

     

    9、怎么限制lisi用户不能登录ftp服务?

    Vim  /etc/vsftpd/user_list

    将要限制的用户加入到其中,重启服务即可。Root用户就是因为此不能登录ftp

    这相当于是黑名单,连给你输入密码的机会都不给

     

    10、怎么限制多个用户登录之后,进入到同一个目录中?

    local_root=/tmp/zxc

    编辑配置文件vim /etc/vsftpd/vsftpd.conf增加如下的信息

    local_root=/tmp/zxc

    重启服务生效

    说明:这个目录不要在root的目录下,是会切换不成功的

  • 相关阅读:
    javascript进阶,从表达式到引用类型,变量监听
    nodejs和es6,es5等关系
    前后端分离工程带来的问题
    vue难点解析
    angular框架及其UI使用
    Javascript入门和TypeScrip入门
    从熟悉项目到开发项目
    昌平某公司入职一周感想
    css和前端UI框架设计ElementUI
    2020新征程
  • 原文地址:https://www.cnblogs.com/lbg-database/p/10109946.html
Copyright © 2011-2022 走看看