linux系统FTP服务搭建、用户权限设置以及虚拟用户设置

1、ftp介绍

FTP:文件传输协议。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id解析:
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开启
553 ##本地文件系统权限过小

2、FTP服务搭建
  • 环境配置
    检查设置网络以及yum源正常。
    注意配置yum源配置文件中加入一句enable=1,使网址链接生效。
    设置selinux 为disabled状态,避免强制状态对服务功能造成影响。
    vim /etc/sysconfig/selinux
    SELINUX=disabled
    reboot
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • ftp部署
    1)安装ftp软件以及lftp登陆软件,并设置服务开启以及开机自启动
    yum install vsftpd.x86_64 -y ##确认安装此软件
    yum instal lftp -y ##确认安装登陆软件
    systemctl start vsftpd ##开启ftp服务
    systemctl status vsftpd ##开机自启ftp服务
    在这里插入图片描述
    在这里插入图片描述
    2)设置防火墙,添加ftp服务
    使用命名
    firewall-cmd --list-all #显示firewall详细信息,查看其中是否有ftp
    firewall-cmd --permanent --add-service=ftp #添加ftp服务
    firewall-cmd --reload #重新加载参数
    在这里插入图片描述
    在这里插入图片描述
    或者直接打开图形界面进行设置
    firewall-config
    在这里插入图片描述
    3)连接看是否成功
    在这里插入图片描述
3、ftp配置文件修改

配置文件: /etc/vsftpd/vsftpd.conf 每次修改配置文件后需要重新启动服务才能生效
systemctl restart vsftpd.service

  • anonymous_enable=YES|NO #匿名用户可以|不可以登陆
    在这里插入图片描述
    在这里插入图片描述
  • local_enable=YES|NO #本地用户可以|不可以登陆
    在这里插入图片描述
  • write_enable=YES|NO ##ftp是否对登陆用户可写
    在这里插入图片描述
    在这里插入图片描述
  • **anon_upload_enable=YES #匿名用户的上传功能 **
    write_enable=YES
    chgrp ftp /var/ftp/pub
    chmod 775 /var/ftp/pub(一定使用者需要有写权限)
    在这里插入图片描述
    在这里插入图片描述
  • anon_root=/目录地址 #匿名用户家目录修改
    若是进行该项设置,匿名用户家目录默认在/var/ftp
    在这里插入图片描述
    在这里插入图片描述
  • anon_umask=xx:rx #匿名用户上传文件默认权限修改
    在这里插入图片描述
  • anon_mkdir_write_enable=YES|NO #匿名用户创建目录
    在这里插入图片描述
    在这里插入图片描述
  • anon_world_readable_only=NO #匿名用户下载,设定参数为no,表示匿名用户可以下载
    在这里插入图片描述
  • anon_other_write_enable=YES|NO #匿名用户删除
    在这里插入图片描述
  • anon_max_rate=102400 #匿名用户最大上传速率 单位为字节
    在这里插入图片描述
    在这里插入图片描述
  • max_clients=2 #匿名用户最大链接数
    在这里插入图片描述
    在这里插入图片描述
  • 匿名用户修改上传文件所有者
    若不进行设置,则匿名用户默认以ftp的身份进行文件上传。
    chown_uploads=YES
    chown_username=xxxx(系统已存在的用户名)
    在这里插入图片描述
    在这里插入图片描述
  • chown_upload_mode=0644 #匿名用户修改上传文件权限
    在这里插入图片描述
    在这里插入图片描述
  • local_root=/绝对路径 #本地用户家目录修改,默认登陆用户家目录
    在这里插入图片描述
    在这里插入图片描述
  • local_umask=xxx #本地用户上传文件的umask值
    在这里插入图片描述
    在这里插入图片描述
  • 限制本地用户浏览/目录
    所有用户被锁定到自己家目录中
    chroot_local_user=YES(此参数与用户写权限冲突,所以将用户所有写权限删除,由于此目录下只有拥有者有写权限,所以只需要把用户写权限减去。但是如果需要上传文件,则可能会出现553报错,建议减去用户权限后做完实验即可恢复。)
    chmod u-w /home/*
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述限制本地用户访问/目录的用户白名单
    chroot_local_user=YES #禁止本地用户可以访问/目录
    chroot_list_enable=YES #开启限制访问/ 目录用户列表
    chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表
    在/etc/vsftpd/chroot_list名单的用户可以访问/ 目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述限制本地用户访问/目录的用户黑名单
    chroot_local_user=NO #开启本地用户可以访问/目录
    chroot_list_enable=YES #开启限制访问/ 目录用户列表
    chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表
    在/etc/vsftpd/chroot_list名单的用户被锁定在自己的家目录中,不能访问/目录
    在这里插入图片描述
    在这里插入图片描述
  • 限制本地用户登陆的黑白名单
    本地用户登陆的黑名单
    vim /etc/vsftpd/ftpusers ##用户黑名单
    vim /etc/vsftpd/user_list ##用户临时黑名单
    写在该名单中的用户无法进行登陆。
    在这里插入图片描述
    本地用户登陆的白名单
    userlist_enable=YES #开启用户登陆名单功能
    userlist_deny=NO #取消名单默认为黑名单
    /etc/vsftpd/user_list ##设定可以登陆ftp的用户
    只有在该名单中的用户才可以登陆。
    在这里插入图片描述
    在这里插入图片描述
4、ftp虚拟用户的设定

vim /etc/vsftpd/totofile ##新建文件记录虚拟用户账户密码信息。内容格式:
toto1
123456
toto2
123456
toto3
123456
db_load -T -t hash -f /etc/vsftpd/totofile /etc/vsftpd/totofile.db
将新建的用户账户密码文件加密
vim /etc/pam.d/totokey #编写验证核对的文件 ,验证账户密码若验证不通过拒绝。
文件内容:
account required pam_userdb.so db=/etc/vsftpd/totofile
auth required pam_userdb.so db=/etc/vsftpd/totofile
vim /etc/vsftpd/vsftpd.conf #修改配置文件
pam_service_name=totokey ##指定被验证的文件
#当虚拟用户的功能开启时,本地用户无法进行登陆
guest_enable=YES ##设定虚拟用户登陆
guest_username=ftp #给定虚拟用户的登陆身份,如果不指定,默认为ftp,也可以指定为其他本地用户,但是其他本地用户虽然可以成功登陆但是没有任何权限,因为配置文件中 规定使用虚拟用户。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、虚拟用户家目录独立设定

先创建目录作为虚拟用户的家目录,并在家家目录中创建特定文件以便于进行区分。
在这里插入图片描述
vim /etc/vsftpd/vsftpd.conf # 对配置文件进行修改
local_root=/var/totohome/$USER #设定虚拟用户家目录与用户名称一致

 user_sub_token=$USER   # 但是由于$USER是脚本用法,所以该指令用来告诉ftp,$USER的用法与脚本中的$USER一样

systemctl restart vsftpd.service #重启服务即可
在这里插入图片描述
在这里插入图片描述

6、设置虚拟用户的独立配置文件

vim /etc/vsftpd/vsftpd.conf #修改配置文件
user_config_dir=/etc/vsftpd/userconf #在其中写入,创建一个虚拟用户的配置目录,在该目录中创建出与用户名称一致的文件,该文件就是用户的专属的配置文件。
mkdir /etc/vsftpd/totoconf
cd /etc/vsftpd/totoconf/
touch toto1
在这里插入图片描述
在这里插入图片描述但是应注意要把主配置文件关于匿名用户的设置全部注释,否则默认读取原来的配置文件。在用户的独立配置文件toto1中添加关于匿名用户配置语句,重启服务,以toto1的身份登陆可以使用独立配置文件中设置的权限,但是其他暂未设置独立权限的用户无法使用,说明独立配置文件设置成功。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shang_feng_wei/article/details/89447180