【ftp篇】 vsftp(ftp) 每天生成一个动态密码

news2024/9/22 1:14:22

这里写目录标题

  • 前言
  • 为什么需要动态每日生成一个密码?
  • 编写脚本
  • 定时任务
  • java对应的代码

前言

社长最近接到一个需求,需要ftp每天动态生成一个密码

为什么需要动态每日生成一个密码?

在软硬件通讯过程中,就以共享单车为例,共享单车的硬件程序有变动后,难道需要我人工一个个的去烧录程序,那肯定太low,一般都是通过服务器跟硬件简历连接后,下发命令,命令里面会包含ftp的地址、账号、密码、上次的路径。硬件端会知道我们的密码,会有一个安全隐患,每日动态生成ftp密码的需求就应运而生。

实现思路(头脑风暴):

  • 既然是每天生成一个密码,那肯定是跟日期有关,那就需要考虑一个根据日期动态生成密码得逻辑
  • 编写脚本,根据上面生成的密码,修改ftp密码
  • cron计划,设置某个 时间,去触发脚本

编写脚本

centos8部署vsftpd

  • 前提:默认大家都是已搭建好ftp的环境,建议使用虚拟账号的方式搭建,这样才好动态修改ftp的密码。

输入vim ftp.sh

source /etc/profile
#!/bin/bash
####密码加密的前缀
FTP_NAME=ftp
####密码存放的目录
FTP_PATH=/etc/vsftpd
TXT_PATH=$FTP_PATH/vuser.list
DB_PATH=$FTP_PATH/vuser.db


num1=$(date "+%m%d")
let num=num1+num1
let num3=num/3
let num2=num%3

###根据固定的路径组装密码,每天生成一次
app_name=$FTP_NAME$num$num3$num2


#####删除最后一行密码,最后加入一行数据
sed -i '4d' $TXT_PATH
echo $app_name  >> $TXT_PATH
echo $app_name


####重新生成密码
db_load -T -t hash -f $TXT_PATH $DB_PATH

  • 生成密码的规则可自己定义
  • sed -i ‘4d’ $TXT_PATH 4d的意思,就是删除第4行
  • echo $app_name >> $TXT_PATH 就是最后一行新增一条数据

在/etc/vsftpd的vuser.list文件中填写对应的内容
在这里插入图片描述

  • 单数是账号(test1111111,ftp123)、偶数是密码
  • 注意:我定的规则是,第一个账号作为不变的密码,第二个账号,就是我需要每天动态生成的密码

定时任务

查看是否安装

crontab:rpm -qa | grep crontab
  • 一般得系统都自带定时任务
    输入crontab -e
####增加一个ftp密码定时每天修改的脚本
1 0 * * * /root/ftp.sh
  • 表示每天的00:01分,会执行对应的脚步
####添加或者修改定时任务
crontab -e
####查看定时任务
crontab -l
####查看定时任务的日志记录,可能通过这里查看确定定时任务是否执行
tail -f /var/log/cron

java对应的代码

 /**
     * 根据username,进行密码的加密,每天的凌晨脚本去修改密码
     * @param username
     * @return
     */
    public static String passwordFtp(String username){
        Integer mmdd = Integer.parseInt(TimeUtil.dateToString(new Date(),"MMdd"));
        Integer one = mmdd + mmdd;
        Integer two = one / 3;
        Integer three = one % 3;
        return username+ one.toString() + two.toString() + three.toString() ;
    }
  • username就是密码前缀,默认为ftp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1075678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java解析E文件工具类

import lombok.extern.slf4j.Slf4j;import java.io.*; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.List;/*** Description E文件工具类*/ Slf4j public class EFileUtils {/*** 读字符串* param text …

智慧公厕的原理与优势,了解一种更智能的卫生设施

智慧公厕是一种基于现代科技的智能化卫生设施,它的出现给人们的生活带来了巨大的改变和便利。本文将详细介绍智慧公厕的原理和优势,让我们一起了解一种更智能的卫生设施。 智慧公厕的原理主要基于物联网技术。通过将公厕内部各种设备和设施连接到互联网…

Java使用Hutool工具包将汉字转换成汉语拼音

主题:使用Java将汉字转换成拼音 介绍 在Java开发中,有时候我们需要将汉字转换成拼音,以方便进行数据处理、搜索和排序等操作。本文将介绍如何使用Hutool和Pinyin4j这两个Java库来实现汉字转拼音的功能。 依赖库介绍 在开始之前,…

无人直播矩阵系统源码开发------

全自动无人直播系统是一款让商家和企业实现无人直播的系统软件,让商家在门店直播卖货,实现解放双手,无需过多的人工干预。为了满足不同用户的需求,我们推出了OEM功能,让用户可以轻松地将该系统集成到自己的应用程序中。…

软考高项-第九章:项目范围管理

重要知识点: 以上总结,仅供参考。

视频通话中的Camera操作

视频通话也有打开本地摄像头预览的场景,但打开本地Camera预览逻辑,并非在Dailer APP中实现,具体流程图如下。 Dialer app中只调用 1、setCamera用于打开摄像头 相关动作在Ims apk中实现,open函数最后调用了VTSource.java中的doOp…

Python+Pickle/Parquet/HDF5...不同文件格式存储模式下的量化因子计算性能对比

在量化交易中,基于金融市场 L1/L2 报价和交易高频数据进行高频因子计算是一项常见的投研需求。随着金融市场数据量的不断增加,传统的关系数据库已经难以满足大规模数据的存储和查询需求。为了应对这一挑战,一部分用户选择了分布式文件系统&am…

2023年中国在线语言教育行业发展趋势分析:预计2026年在线语言教育市场规模有望实现1182.3亿元[图]

在线语言教育是指在信息化时代的背景下,使用电脑、手机、平板等基于网络的工具在任何地方、任何时间都可以对语言进行学习的一种教育方式,包括校内在线语言教育和校外在线语言教育。在线语言教育是对未来教育模式的探索,以数字化为杠杆&#…

03_学习springdoc与微服务结合_简述

文章目录 1 前言2 基本结构3 网关的配置3.1 ✍️ pom.xml 引入依赖3.2 🌿 application.yml 的配置3.2.1 Gateway 的配置3.2.2 Eureka Client 的配置3.2.3 Springdoc 的配置 3.3 Springdoc 配置类 4 影片服务 backend-film 的配置4.1 ✍️ pom.xml 引入依赖4.2 &…

Go语句与表达式深度解析:全案例手册

目录 语句1. 声明语句1.1 变量声明1.2 常量声明 2. 赋值语句3. 控制流语句3.1 条件语句if语句switch语句 3.2 循环语句for语句 3.3 跳转语句break语句continue语句return语句goto语句 4. 其他语句4.1 defer语句4.2 go语句 实战案例 表达式介绍、详解、举例1. 基础表达式1.1 字面…

在线免费无时长限制录屏工具 - 录猎在线版

需要录屏的小伙伴注意啦,想要长时间录制又不想花钱的,可以看下这款在线版录屏软件 —— 录猎在线版,一个录屏软件所需要的基本功能它都有,设置录制范围、录制的声音来源、摄像头也能录制的。同时它是支持Windows和Mac系统的&#…

Flink session集群运维

1、集群job manager挂了 kubectl describe pod session-deployment-only-84b8d674c7-ckl9w -n flink kubectl get pod -n flink -owide kubectl describe pod session-deployment-only-84b8d674c7-ms758 -n flink 两个job manager都挂了 准备重新部署集群 删除操作(删除fli…

GTX314L国产替代SI314—低功耗14通道电容触摸传感器芯片

Si314是一款具有自动灵敏度校准功能的14通道电容传感器,其工作电压范围为1.8~5.5V。 Si314设置休眠模式来节省功耗,此时,功耗电流为10uA3.3V。 Si314各个感应通道可实现独立使能、校准、灵敏度调节,可以确保可靠性,且具…

Mysql创建新用户控制权限信息

目录 登录 进入mysql数据库 创建新用户及设置密码 设置用户可远程连接登录 刷新权限 限制新用户只能从特定的主机或IP地址访问MySQL服务器 限制用户只对特定数据库的访问权限 限制用户只能访问特定数据库中的特定表 撤销给用户授予的特定权限 查看用户的权限信息 注 …

力扣:129. 求根节点到叶节点数字之和(Python3)

题目: 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所…

Android攻城狮学鸿蒙-配置

1、config.json配置 鸿蒙中的config.json应该类似于Android开发中Manifest.xml,可以进行页面的配置。根据顺序,会识别启动应用的时候,要打开哪个界面。 2、 Ability详解,以及与Android的Activity对比。 他人的学习文章连接&…

【运维日常】运维必备的 免费 在线画图工具,真的很好用!

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

外贸客户开发信怎么写?如何撰写营销邮件?

外贸客户开发信模板有哪些?高回复率的开发信技巧? 外贸客户开发信是一项至关重要的工作。这封信通常是你与潜在客户建立联系的第一步,因此必须仔细策划和撰写。蜂邮EDM将介绍如何写一封令人印象深刻的外贸客户开发信,以吸引潜在客…

PHP聊天系统源码 在线聊天系统网站源码 后台自适应PC与移动端

程序前台与后台自适应PC与移动端,支持一对多交流,可以自由创建新的房间与解散创建的房间,集成签到功能,等级功能,房间创建者可以对用户进行禁言、拉黑处理,房间可以由房间创建者自由设置进入密码&#xff0…

如何打造一个网络框架模块对接服务器

一、了解网络框架的基本原理 在开始打造网络框架模块之前,首先需要了解网络框架的基本原理。网络框架是一个软件模块,用于处理网络通信的各种细节,包括数据传输、协议解析、错误处理等。常见的网络框架有HTTP、TCP/IP、WebSocket等。 对啦&…