RH134-第十八节-FTP共享服务搭建以及个性化设置

2023-12-28 08:58

本文主要是介绍RH134-第十八节-FTP共享服务搭建以及个性化设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

搭建FTP服务器

安装vsftpd服务

yum search ftp
yum install vsftpd.x86_64

启动服务

systemctl start vsftpd

关闭防火墙将ftp加进防火墙策略里

systemctl stop firewalld

firewall-cmd –add-service=ftp
此时可用lftp ftp服务器ip就可访问ftp服务器了

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

1.匿名用户(anonymous)设置
anonymous_enable=YES/NO(YES)
控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为YES。

write_enable=YES/NO(YES)
是否允许登陆用户有写权限。属于全局设置,默认值为YES。

no_anon_password=YES/NO(NO)
若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。

ftp_username=ftp
定义匿名登入的使用者名称。默认值为ftp。

anon_root=/var/ftp
使用匿名登入时,所登入的目录。默认值为/var/ftp。注意ftp目录不能是777的权限属性,即匿名用户的家目录不能有777的权限。

anon_upload_enable=YES/NO(NO)
如果设为YES,则允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。

anon_world_readable_only=YES/NO(YES)
如果设为YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在FTP服务器中打开阅读)。默认值为YES。

anon_mkdir_write_enable=YES/NO(NO)
如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。

anon_other_write_enable=YES/NO(NO)
如果设为YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果 anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经存在的文件夹。)默认值为NO。

chown_uploads=YES/NO(NO)

设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO。

chown_username=username
设置匿名用户上传文件(非目录)的属主名。建议不要设置为root。

anon_umask=077
设置匿名登入者新增或上传档案时的umask 值。默认值为077,则新建档案的对应权限为700。

deny_email_enable=YES/NO(NO)

若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO。

banned_email_file=/etc/vsftpd/banner_emails
此文件用来输入email address,只有在deny_email_enable=YES时,才会使用到此档案。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。

2.本地用户设置
local_enable=YES/NO(YES)
控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES。

local_root=/home/username
当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。

write_enable=YES/NO(YES)
是否允许登陆用户有写权限。属于全局设置,默认值为YES。

local_umask=022
本地用户新增档案时的umask 值。默认值为077。

file_open_mode=0755
本地用户上传档案后的档案权限,与chmod 所使用的数值相同。默认值为0666。

欢迎语设置

dirmessage_enable=YES/NO(YES)
如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。
message_file=.message
设置目录消息文件,可将要显示的信息写入该文件。默认值为.message。
banner_file=/etc/vsftpd/banner
当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值为无。如果欢迎信息较多,则使用该配置项。
ftpd_banner=Welcome to BOB’s FTP server
这里用来定义欢迎话语的字符串,banner_file是档案的形式,而ftpd_banner 则是字符串的形式。预设为无。

4.控制用户是否允许切换到上级目录
在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。
chroot_list_enable=YES/NO(NO)
设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
chroot_list_file=/etc/vsftpd.chroot_list
用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
chroot_local_user=YES/NO(NO)
用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
通过搭配能实现以下几种效果:
①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

服务器可能的报错:

550: 服务本身不允许
553:本地文件系统权限不允许,有防火墙,selinux,要上传的文件是否允许你上传
530;密码不对,根目录权限太小,pam_service_name不对
500:根目录权限太大:500 OOPS: vsftpd: refusing to run with writable root inside chroot():此时应该将用户的写权限去掉

三、实验

/var/ftp的o权限最少为5

1.怎么让匿名有虎可以上传文件?

vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES

  1. 如何让匿名用户创建目录?
    vim /etc/vsftpd/vsftpd.conf
    anon_mkfir_write_enable=YES
  2. 如何让匿名用户可以下载?
    vim /etc/vsftpd/vsftpd.conf
    anon_world_readable_only=NO
  3. 如何让匿名用户可以删除文件,前提是所在目录有权限?
    vim /etc/vsftpd/vsftpd.conf
    anon_other_write_enable=YES

如果参数忘记可以man 5 vsftpd.conf来查

5.如何修改用户的默认家目录?
匿名用户:anon_root=/westos
怎么让他在新的家目录可以上传东西:
chown ftp /新目录
chmod 700 /新目录 或者
chgrp ftp /新目录
chmod 070 /新目录
6.如何修改用户的上传文件的权限?
匿名用户:anon_umask=/westos
本地用户:local_umask=/westos

  1. 如何修改匿名用户上传的身份?
    chown_uploads=YES
    chown_username=student

  2. 如何修改上传的最大速率?
    anon_max_rate=102400
    local_max_rate=102400

9.如何设置最大用户连接数?
max——clinets=2
是在设置之后再登录进来的开始算,之前就登录进来的不算,

  1. 用户被锁定到自己的家目录
    chroot_local_user=NO 可以切换到除家目录以外的其他目录,默认可以切
    YES 切换不到除加目录以外的其他目录,(我怎么试出来500错)
    此时如果家目录有w权限并且chroot_local_user=YES时,重新登录的会报错500

四、黑白名单
1.ftpusers:永久黑名单,优先级高于user_list
2.user_list:临时黑名单
当user_list_deny=NO时他变为白名单

五、虚拟用户

进入/etc/vsftpd
1.再/etc/vsftpd下写一个虚拟用户的帐号和密码的文件,文件名随意
vim westosfile
user1
123
user2
123
注意文件里面不要有空格什么的

2.对上面文件进行加密
db_load -T -t hash -f westosfile westosfile.db
执行完后看/etc/vsftpd下有没有westosfile.db

3.进入/etc/pam.d,编写一个文件,文件名随意
vim westos
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile

4.编写/etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES 开启
guest_username=Linux 虚拟用户以那个本地用户的身份进行登陆

5.重启vsftpd
6.chmod u-w /home/linux

怎么独立虚拟用户的加目录?
1.创建家目录
mkdir /ftpdir/user1
mkdir /ftpdir/user2
为了可以看见效果,创建两个文件以示区别:

    touch /ftpdir/user1/file1touch /ftpdir/user2/file2

2.vim /etc/vsftpd/vsftpd.conf
local_root=/ftpdir/ USERusersubtoken= USER
3.systemctl restart vsftpd

怎么独立上传?
1.分别在加目录下建立目录,并修改权限
mkdir /ftpdir/user1
mkdir /ftpdir/user2
touch /ftpdir/user1/file1
touch /ftpdir/user2/file2
(两个touch是为了为区别两个目录)

修改虚拟用户根目录的权限否则回报553,本地文件系统不允许的错
[root@ftp ftpdir]# chmod 070 user1
[root@ftp ftpdir]# chmod 070 user2

2.将配置文件中的chown注释掉,chown是修改上传身份的
3.vim /etc/vsftpd/vsftpd.conf
修改根目录:local_root=/ftpdir/ USERusersubtoken= USER
4.systemctl restart vsftpd

分开控制配置文件

mkdir /ftpdir/user1/user1dir
mkdir /ftpdir/user2/user2dir
chmod 755 /ftpdir/user1/user1dir
chmod 755 /ftpdir/user2/user2dir
1.将主配置文件/etc/vsftpd/vsftpd.conf里面的配置先注释掉
2.往里添加user_config_dir=/etc/vsftpd/linux
3.创建/etc/vsftpd/linux
4.某一用户的配置文件vim user1
anon_upload_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
5.重启vsftpd服务

这篇关于RH134-第十八节-FTP共享服务搭建以及个性化设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/545469

相关文章

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、