Github每日精选(第52期):验证您的有风险的shell命令shellfirm

news/2024/4/26 18:38:53/文章来源:https://blog.csdn.net/weixin_40425640/article/details/126641679

shellfirm

shellfirm 是一个shell的拦截器,拦截任何有风险的shell命令(默认或由您定义)并提示您进行双重验证。

我如何从自己身上拯救自己?

  • rm -rf *
  • git reset --hard在按下回车键之前?
  • kubectl delete ns停止!你要删除很多资源
  • 还有很多!

你想从别人的错误中吸取教训吗?

shellfirm将拦截任何有风险的模式(预定义或用户自定义添加)并立即提示一个小挑战,该挑战将双重验证您的操作,将其视为您终端的验证码。

$ rm -rf /
#######################
# RISKY COMMAND FOUND #
#######################
* You are going to delete everything in the path.Solve the challenge: 8 + 0 = ? (^C to cancel)

shellfirm将在幕后评估所有的 shell 命令。如果检测到有风险,您将立即收到带有相关警告的提示,以验证您的命令。

github的地址在这里。

在这里插入图片描述

安装

下载二进制文件,解压缩文件并移动到/usr/local/bin文件夹。

验证 shellfirm 安装

shellfirm --version

配置

Bash 实现基于rcaloras/bash-preexec项目,该项目添加了一个pre-exec 钩子以在执行之前捕获命令。

# Download bash-preexec hook functions. 
curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ~/.bash-preexec.sh# Source our file at the end of our bash profile (e.g. ~/.bashrc, ~/.profile, or ~/.bash_profile)
echo '[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' >> ~/.bashrc# Download shellfirm pre-exec function
curl https://raw.githubusercontent.com/kaplanelad/shellfirm/main/shell-plugins/shellfirm.plugin.sh -o ~/.shellfirm-plugin.sh# Load pre-exec command on shell initialized
echo 'source ~/.shellfirm-plugin.sh' >> ~/.bashrc

这样我们就完成了 shellfirm的配置。

另外开启一个控制终端。

输入如下的命令:

$ mkdir /tmp/shellfirm
$ cd /tmp/shellfirm
$ git reset --hard

这时候他会提示我们:

#######################
# RISKY COMMAND FOUND #
#######################
* This command going to reset all your local changes.Solve the challenge:: 9 + 5 = ? ^C to cancel

自定义检查定义示例

shellfirm默认情况下在~/.shellfirm/config.yaml. 确保您只编辑enable字段(以防您想禁用特定检查),所有其余字段均由shellfirm命令 ( shellfirm config --help) 管理。

challenge: Math # Math, Enter, Yesincludes: - base- fs- gitchecks:- test: git resetmethod: Containsenable: truedescription: "This command going to reset all your local changes."from: gitchallenge: Default- test: "rm.+(-r|-f|-rf|-fr)*"method: Regexenable: truedescription: "You are going to delete everything in the path."from: fschallenge: Default- test: ">.+/dev/sda"method: Regexenable: truedescription: "Writing the data directly to the hard disk drive and damaging your file system."from: fschallenge: Default- test: "mv+.*/dev/null"method: Regexenable: truedescription: "The files will be discarded and destroyed."from: fschallenge: Default

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【干货】10个高质量的java自学网站推荐

经常有人留言问我,“想学习Java编程,有没有学习资源推荐,有哪些网站可以关注”。好些同学是去网盘搜索,或者去某宝购买,搜集一堆资料,但是又不清楚哪些是重复的内容,哪些内容是不是版本已经过时…

【Bluetooth|蓝牙开发】十一、一文秒懂 | 超详细的Bluez交叉编译

个人主页:董哥聊技术我是董哥,嵌入式领域新星创作者创作理念:专注分享高质量嵌入式文章,让大家读有所得!【 所有文章汇总】 1、 前言 前面几篇文章,主要讲解了蓝牙协议栈层面的内容,本篇来从源…

城区导航智能驾驶难在哪?写在小鹏/华为-极狐NOA释放之时

交流群 | 进“传感器群/滑板底盘群”请加微信号:xsh041388交流群 | 进“汽车基础软件群”请加微信号:ckc1087备注信息:群名称 真实姓名、公司、岗位【本文一万字左右,预计阅读时间约20分钟,文中有若干图片/GIF/视频&a…

猿创征文 | 国产数据库之PolarDB-X数据库详解安装和使用

文章目录1、PolarDB-X是什么?2、PolarDB-X架构3、PolarDB-X架构优势4、PolarDB-X核心特性5、PolarDB-X部署5.1、通过PXD部署集群5.2、通过 K8S 部署5.3、通过编译安装1、PolarDB-X是什么? PolarDB-X是由阿里巴巴自主研发的云原生分布式数据库&#xff0…

如何修复u盘?不如试试我这3个方法

u盘小小的一个便于我们携带,里面保存着我们很多数据。但是有时我们不小心清空了里面的数据,或者由于其他原因,导致u盘里的文件丢失,甚至出现打不开的局面。这时候该如何修复u盘?为了解答大家的疑惑,小编专门…

docker搭建主从架构和哨兵模式

下文介绍使用docker来创建redis的主从架构和哨兵模式 前提 linux已经下载并安装了docker 从仓库中pull redis的镜像 docker pull redis:latest确保主机中的镜像已经有了刚下载好的redis镜像 docker images架构图 一. docker创建redis的主从架构 1. 先创建一个master节点…

聚观早报 | 字节2021年亏损6041亿元;iPhone SE 4将采用刘海屏

今日要闻:字节2021年亏损6041亿元;iPhone SE 4或将采用刘海屏;京东众筹10月10日停止运营;特斯拉中国销量再创月度新高;大众将在中国成立软件合资企业字节2021年亏损6041亿元 10 月 10 日消息,字节跳动向员工…

FFmpeg基础:抽取视频文件中的音视频原始数据

文章目录视频流解码音频流解码原始的音视频数据数据量很大,为了方便传输和存储,我们会对原始数据进行压缩和编码。h264是常见的视频编码标准之一,AAC是常见的音频编码标准之一。这里介绍一下如何通过FFmpeg库将视频文件中的h264视频流解码成原…

[Unity] 获取UI组件的屏幕坐标(打包手机端使用前置摄像头)

因为我是打包到手机端,并且使用的是前置摄像头 在Canvas默认的render mode(Screen Space - Overlay)下: 我想要使用 arcamera.WorldToScreenPoint(button.transform.position) 将Canvas下的button世界坐标转为屏幕坐标&#xff…

手把手教你搭建属于自己的第一个Maven项目并引入Spring容器依赖

前言 最近在学习Maven和Spring,在这里做个学习记录并且分享一些我自己的学习经验,对Maven和Spring感兴趣的小伙伴可以一起来学习,有任何问题也欢迎一起来交流讨论。 Spring简介 Spring框架由Rod Johnson开发,2004年发布了Sprin…

(附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

技术分享预告|DocArray x Redis 比快更快的向量搜索

从国内的学生开发者,到深入参与国际化开源社区。小燕主动出击,不放过任何一个贡献机会。快来看看原子能科学研究院核物理专业小姐姐的神仙输出!北京时间 10 月 11 号,本周二晚 10 点,小燕将在 Zoom 平台,面…

第03章 成人感冒不是大事,少往急诊跑

急诊是病菌最多的地方,能避则避我在安贞急诊工作了数个年头,最大的体会就是急诊像个大的农贸市场,每天人头攒动、人山人海、接踵摩肩、座无虚席、门庭若市、沸沸扬扬、热闹非凡、熙熙攘攘、车水马龙、人来人往……写了这么多词汇都不足以写出…

Redis(Jedis入门 Jedis连接池

本章导学: 什么是Jedis?Jedis入门案例 新建项目,导入依赖建立连接进行测试释放资源Jedis的连接池使用一、什么是Jedis Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C、php、Nod…

Spring IOC核心知识

控制反转(IOC: Inversion Of Control),把对象的创建和对象之间的调用过程都交给Spring管理,从而降低耦合度。 IOC底层原理 三大技术:XML解析、工厂模式、反射 IOC创建对象的过程: IOC重要接口 IOC容器底…

路径分析—QGIS+PostgreSQL+PostGIS+pgRouting(一)

前言 因业务需求,需要做最短路径分析。最近几天查询资料,并自己动手,实现了简单的路径分析。 下面就介绍具体的实现过程。 本篇文章最终结果是在 PostgreSQL 数据库中实现的,后续的可视化展示会继续跟进。 一、道路数据处理 如果你已经有了道路数据,那就直接使用。 由于当…

传统应用如何“丝滑”转型为云原生应用?

市场需求瞬息万变,传统型的应用逐渐无法满足业务侧要求,传统应用向云原生应用转型,已势在必行。本篇文章将介绍基于CloudOS(一站式云原生开发平台)如何实现传统应用向云原生应用的转型。 在此之前,我们需…

python基础(老师PPT)

slist [Alice,2019001, Geoscience, 95] # 使用分号加tab作为分隔符&#xff0c;连接字符串 print(;\t.join(slist))# a X if condition else Z # condition为True时&#xff0c;赋值为X&#xff0c;否则赋值为Z a, b 1, 2 c a > b if a > b else a < b print(c)…

分布式seata案例学习-2

上篇文章学习了如何安装seata&#xff0c;先学习如何使用 事务的4个特性ACID 事务特性 at模式详解 AT模式运行机制 AT模式的特点就是对业务无入侵式&#xff0c;整体机制分二阶段提交 两阶段提交协议的演变&#xff1a; 一阶段&#xff1a;业务数据和回滚日志记录在同一个本地…