linux中ftp服务的搭建与介绍

  • FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。
  • 安装vsftp(vsftp应该是一款不错的ftp软件。)
    yum search vsftp

    yum install vsftpd -y
    对vsftp进行安装

    systemctl start vsftpd 启动vsftpd服务
    systemctl status vsftpd 查看vsftpd状态

    3.设置防火墙
    安装ftp服务
    yun install ftp -y

    firewall-cmd --permanent --add-service=ftp 在防火墙中添加ftp服务
    firewall-cmd --reload 重新加载参数

    firewall-cmd --list-all 显示防火墙服务列表

    4.ftp搭建成功
  • 5.ftp配置文件修改
    配置文件: /etc/vsftpd/vsftpd.conf 每次修改配置文件后需要重新启动服务才能生效
    systemctl restart vsftpd.service
    1.anonymous_enable=YES|NO #匿名用户可以|不可以登陆

    匿名用户无法登陆
    2.local_enable=YES|NO #本地用户可以|不可以登陆


    3.write_enable=YES|NO ##ftp是否对登陆用户可写

    服务未开启
    4.报错id解析
    500 ##文件系统权限过大
    530 ##用户认证失败
    550 ##服务本身功能未开启
    553 ##本地文件系统权限过小
    5.匿名用户上传
    write_enable=YES
    anon_upload_enable=YES
    chgrp ftp /var/ftp/pub
    chmod 777 /var/ftp/pub(一定使用者需要有写权限)

    匿名用户可以上传文件
    6.匿名用户家目录修改(匿名用户家目录默认在/var/ftp)
    anon_root=/目录地址

    在新的家目录里新建一个文件夹 file1
    匿名用户登陆后验证 file1 则该家目录被修改
    7.匿名用户上传文件默认权限修改

    8.anon_mkdir_write_enable=YES|NO #匿名用户创建目录
    服务未开启

    目录被成功建立
    9.anon_world_readable_only=NO #匿名用户下载,设定参数为no,表示匿名用户可以下载
    服务未开启

    下载成功
    10.anon_other_write_enable=YES|NO #匿名用户删除


    服务开启 删除成功
    11.anon_max_rate=102400 #匿名用户最大上传速率 单位为字节
    dd if=/dev/zero of=/mnt/redfile bs=1M count=1000 截取daxiao大小为1M的数据存在redfile中
    上传平均速度为102400
    12.匿名用户最大链接数

    这里表示连接数最多为两个
    13.匿名用户修改上传文件所有者

    chown_uploads=YES
    chown_username=xxxx(系统已存在的用户名)

    14.匿名用户修改上传文件权限

    上传的文件权限被更改
    本地用户
    local_enable=YES|NO ##本地用户登陆限制
    write_enable=YES|NO ##本地用户写权限
    local_root=/绝对路径 本地用户家目录修改,默认登陆用户家目录

    本地用户的登陆与写的权限开启
    修改本地用户的家目录为/var/ftp

    local_umask=xxx #本地用户上传文件的umask值


    限制本地用户浏览/目录
    所有用户被锁定到自己家目录中
    chroot_local_user=YES(此参数与用户写权限冲突,所以将用户所有写权限删除,由于此目录下只有拥有者有写权限,所以只需要把用户写权限减去。但是如果需要上传文件,则可能会出现553报错,建议减去用户权限后做完实验即可恢复。)
    chmod u-w /home/*


    关闭后成功切换到 /

    用户黑名单
    chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    在/etc/vsftpd/chroot_list名单的用户被锁定在自己家目录中



    用户白名单
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    不在/etc/vsftpd/chroot_list名单的用户被锁定在自己家目录中

    bruceiter 不在chroot_list中 则访问不了/目录

    限制本地用户登陆
    vim /etc/vsftpd/ftpusers ##用户黑名单
    vim /etc/vsftpd/user_list ##用户临时黑名单

    用户白名单设定
    userlist_deny=NO ##将本来的名单权限打开,并且关闭黑名单权限,就是剩余白名单权限
    /etc/vsftpd/user_list ##设定可以登陆ftp的用户
    NO为打开

    开启后所有用户登陆不了

    在 /etc/vsftpd/user_lis 添加后登陆成功

    ftp虚拟用户的设定
    vim /etc/vsftpd/userfile ##新建虚拟用户账户密码信息
    user1
    2233
    user2
    2233
    user3
    2233
    db_load -T -t hash -f /etc/vsftpd/userfile /etc/vsftpd/userfile.db ##将新建的用户账户密码文件加密
    vim /etc/pam.d/user ##编写验证账户密码若验证不通过拒绝,验证软件,被验证核对的文件
    account required pam_userdb.so db=/etc/vsftpd/userfile(为之前建立的账户密码信息文件)
    auth required pam_userdb.so db=/etc/vsftpd/userfile
    vim /etc/vsftpd/vsftpd.conf
    pam_service_name=user ##验证的文件是从/etc/pam.d/user决定的,与其同名
    guest_enable=YES ##设定虚拟用户登陆
    guest_username=ftp ##登陆软件是ftp
    登陆使用 -u是由于虚拟用户与本地用户都是使用ftp这个用户的身份,ftp用户是安装时就生成的。

    虚拟帐号家目录独立设定
    vim /etc/vsftpd/vsftpd.conf
    local_root=/ftphome/$USER ##区分虚拟账户家目录,但是由于$USER是脚本用法,所以用下一句来告诉ftp,$USER的用法与脚本中的$USER一样
    user_sub_token=$USER
    ##可以在每个虚拟用户家目录下建立不同的文件作为标示。
    mkdir /ftphome/user1/user1file -p
    mkdir /ftphome/user2/user2file -p
    mkdir /ftphome/user3/user3file -p

    独立设置配置文件
    vim /etc/vsftpd/vsftpd.conf
    user_config_dir=/etc/vsftpd/userconf
    并且注释掉关于匿名用户的语句。在/etc/vsftpd/userconf/user1中添加关于匿名用户配置语句,重启服务,以用户1的身份链接出现创建文件,创建成功之后,若用户2创建不成功,则说明二者独立设置配置文件。但是应注意要把之前的配置文件关于匿名用户全部注释,否则默认读取原来的配置文件,没有找到权限就找自己的配置文件。

    原文地址:https://blog.51cto.com/12893781/2382949

    时间: 2024-08-29 09:07:37

    linux中ftp服务的搭建与介绍的相关文章

    <Linux下FTP服务的搭建>

    默认安装好ftp软件包匿名用户是可以下载的.匿名以后可以上传:anon_upload_enable=YES# getsebool -a | grep ftpallow_ftpd_anon_write --> onchcon -t public_content_rw_t pubchmod 775 pubchgrp ftp pub 匿名用户可以创建目录:anon_mkdir_write_enable=YES 在创建的目录上传文件看不到.添加下面anon_world_readable_only=NO

    linux中FTP服务搭建详解--1.匿名与权限

    实验环境:在redhat6.5中安装配置FTP服务,并使用一台win7系统访问验证. 理论: FTP连接方式     支持两种连接模式:主动模式(Port)和被动模式(Pasv),这两种模式都是针对数据链路进行的,与控制链路无关. 主动模式工作过程: 1.客户端从自己的一个任意端口(N > 1024)和FTP服务器的21端口建立控制链路2.然后客户端发出Port指令告诉服务器连接自己的N+1端口来建立一条数据通道3.当FTP服务器接到这一指令时,会使用20端口连接用户在Port指令中指定的端口号

    linux 下FTP服务的搭建详解

    第1章 centos 6.8搭建FTP服务详解 1.1搭建环境: [[email protected] ~]# cat /etc/redhat-release CentOS release 6.8 (Final) [[email protected] ~]# uname -r 2.6.32-642.el6.x86_64 [[email protected] ~]# uname -m x86_64 [[email protected] ~]# 1.2yum 安装FTP软件: [[email pro

    Linux中FTP服务器的搭建

    vmware12上安装的CentOs6.8,最终实现物理机上的windows10能正常访问CentOs上的FTP服务器. 一.查看是否安装有ftp相关的安装包. # rpm -qa | grep vsftpd        //ftp的安装包就是vsftpd 查看到我的系统中没有安装相关的包,所以先把安装包装上. # yum -y install vsftpd //这里如果没有配置yum源,可以直接用rpm的方式安装也是一样的 查看一下是否安装成功 二.启动服务并设置开机自启动. # servi

    <linux下extmail服务的搭建>

    下载2个软件包: extmail-1.1.0.tar.gz     extman-1.1.tar.gz 下载地址:http://www.cpan.org/ 创建extsuite目录 mkdir /var/www/extsuite 解压这2个包到这个目录下: tar zxf extman-1.1.tar.gz -C /var/www/extsuite tar zxf extmail-1.1.0.tar.gz -C /var/www/extsuite 改个短的名字 mv extmail-1.1.0

    Linux之web服务的搭建

    今天我来给大家分享一下在Linux下搭建web服务器 1.安装包 yum install httpd 安装完成后我们会在/etc目录下看到有一个httpd的目录 我们的默认文件存放位置在/var/www/html 然后修改我们的注配置文件 vim /etc/httpd/conf/httpd.conf ServerName 自己的主机名:80 表示服务名称为自己的主机名,监听在80端口 然后就可以建文件了 vim /var/www/html/index.html hello 这就是我们的主页文件了

    FTP服务系列二完整FTP服务的搭建

    一.安装所需要程序 1.事先安装好开发环境和mysql数据库; # yum -y install mysql-server mysql-devel # yum -y groupinstall "Development Tools" "Development Libraries" 2.安装pam_mysql-0.7RC1 # tar zxvf  pam_mysql-0.7RC1.tar.gz # cd  pam_mysql-0.7RC1 # ./configure -

    Linux中ftp不能上传文件/目录的解决办法

    在linux中不能上传文件或文件夹最多的问题就是权限问题,但有时也不一定是权限问题了,像我就是空间不够用了,下面我来总结一些ftp不能上传文件/目录的解决办法 在排除用户组和权限等问题后,最可能引起ftp下文件无法上传并经常被忽略的因素就是硬盘空间已满,而导致硬盘空间满的问题多数是日志文件所占用的,例如mysql的日志会在不知不觉中变得十分庞大,直至占满剩余的硬盘空间. 解决办法: 1.定期手动清理或使用脚本清理mysql日志或其他相关日志文件. 2.关闭mysql日志(不推荐) 上面是空间有问

    Linux中Sshd服务配置文件优化版本(/etc/ssh/sshd_config)

    Linux中Sshd服务配置文件优化版本(/etc/ssh/sshd_config) # $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $ # If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTN