shell安全防范———慎将当前目录.加入PATH~~~之~隔壁老王来敲门

你家大门常打开~~~老王请进~~(慎将当前目录.加入PATH)

经常听见有人说别将.(当前目录)加入PATH,到底为什么呢,自己想了很多次也上网查了半天,然后并没有什么卵子用

最终冥思苦想、拨开云雾见青天~~想到这么一个例子,起码能看出把.目录加入PATH会是什么样的下场!!!。

那么~~上图说话:

一、先模拟将,目录放入PATH

  1. 这是原来PATH的变量

2.    那么现在我将.目录将入到PATH中

睁大眼睛@@:一定要把.目录放在最前面,因为一个命令是从PATH中最前面的路径中寻找,如果找不到才往后面找

 二、这时候突然有个hacker鸡血澎湃想搞事情,接下里瞅瞅他怎么搞

1.    他利用一个普通用户在自己家目录下创建了一个名称为“vi”的脚本

脚本内容很简单就是要删除某一个文件:(如果换成删根目录,后果自己想去吧)

脚本内容:

2.这时候root用户心血来潮,想去george她家用 vi 这个命令看其他文件

3.     现在root已经进入了george家目录了

最后看看根目录下的那个测试文件还在吗:

如果还不理解:就把.目录加入PATH,等坐隔壁老王吧~~~~~~~~~~

最后欢迎关注微信公众号:linux运维菜鸟之旅

原文地址:http://blog.51cto.com/13055758/2060822

时间: 2024-09-29 18:48:35

shell安全防范———慎将当前目录.加入PATH~~~之~隔壁老王来敲门的相关文章

shell 脚本实战笔记(2)--环境变量PATH的恩怨情仇

在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先的$PATH内容, 把原本的PATH=/path/to/newcmd:$PATH, 写成了PATH=/path/to/newcmd, 并不小心写入了~/.bashrc, 并且source ~/.bashrc. 这时会发生什么? 我们如何去处理这种情况? 所有的命令都不能用了, 想回去编辑~/.bas

Shell随机重命名所有当前目录一级子目录

直接使用Unix/Linux系统uuid文件截取部分生成随机数,同时为了防止重命名过程中有可能已存在和新随机目录同名的一级子目录,即重命名操作失效,mv效果变成了移动旧目录至一级子目录,特意添加了一重循环检测.使用该脚本可以直接修改脚本所在目录的所有同级一级子目录. #!/bin/sh for Dir in $(find -maxdepth 1 -type d | sed '1d') do     NewDir=$(cat /proc/sys/kernel/random/uuid | cksum

剧透慎入:人人都想杀了王小槐:5星|《清明上河图密码5》

清明上河图密码5:隐藏在千古名画中的阴谋与杀局 依旧是非常精彩,拿到书后周末一天半时间迫不及待地看完. 书中用八卦的名词做大小标题,每一小节是一个人物,每个人都有自己的想法和故事,基本上每个人都想杀了王小槐.人物实在是太多,大部分人物是仅仅出现在自己的小节中和小节所在的大章中,后面就不提了.基本记不住名字. 本集的推理部分比较弱,赋予了“相绝”陆青超人的能力作为全书的主线之一.但是这不影响全书的悬念,悬念设计非常好,读的过程中迫切想知道案件结果. 大部分的情节发生的地点都不在清明节,不在首都汴梁

SHELL简单脚本编写

vim /root/7.sh #!/bin/bash X=$[RANDOM%10+1] read -p "[1-10]你猜:" cai if [ $cai -eq $X ];then echo 恭喜你猜对了 exit elif [ $num -gt $X ];then echo 猜大了 else echo 太小了 fi vim /root/6.sh #!/bin/bash read -p "请输入一个软件包:" b b=$(rpm -qa | grep "

shells学习

shells 脚本 Shell是在Linux内核与用户之间的解释器程序,通常指的是bash,负责向内核翻译及传达用户/程序指令 是liunx系统中的翻译管,解释器类型: ~]#cat /etc/shells   /bin/sh  /bin/bash  /sbin/nologin  /usr/bin/sh  /usr/bin/bash  /usr/sbin/nologin  /bin/tcsh  /bin/csh  ############################例: 添加解释器:ksh

ansible核心模块playbook介绍

ansible的playbook采用yaml语法,它简单地实现了json格式的事件描述.yaml之于json就像markdown之于html一样,极度简化了json的书写.在学习ansible playbook之前,很有必要把yaml的语法格式.引用方式做个梳理. 1.1 初步说明 以一个简单的playbook为例,说明yaml的基本语法. --- - hosts: 192.168.100.59,192.168.100.65 remote_user: root pre_tasks: - name

HTTP、HTTPS

http是一种无状态协议,通过短暂保持浏览器核服务器间通信可以有效减少为保持连接而耗费的额外开销.无状态意味着浏览器和服务器完成一次通信后,连接会释放.在下一次会话发起时,浏览器核服务器端不会记录上一次通信到底发生了什么. 无状态协议导致网站无法保存用户的状态,于是引入Cookie技术.http服务器把cookie发送到浏览器端,之后浏览器在每次连接时都会将cookie副本返回给服务器.cookie通过http协议头在浏览器和服务器之间传输.一般浏览器端存储不超过300个cookie文件,服务器

【jersey】 spring 整合jersey 实现RESTful webservice

Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层.与Struts类似,它同样可以和hibernate,spring框架整合. 由于Struts2+hibernate+spring整合在市场的占有率太高,所以很少一部分人去关注Jersey.所以网上有关于Jersey的介绍很少.但是它确实是一个非常不错的框架.对于请求式服务,对于GET,DELETE请求,你甚至只需要给出一个URI即可完成操. jar 文件依赖: <pro

linux 用户管理(一)

本节内容梗概: 1.用户管理配置文件 2.用户管理命令 3.用户组管理命令 4.批量添加用户 5.用户授权 学东西先讲原理,所以从配置文件入手 1.用户信息文件  /etc/passwd 存放了用户的信息 用户名:密码位:UID:GID:注释性描述:宿主目录:命令解析器 linux分为三种用户 UID=0 超级用户  UID为0的用户才是超级用户  而且可以不止一个 UID=[500,60000]普通用户 UID=[1,499]伪用户,都是些与linux系统或者进程相关的调用者,所以不得不冠以用