国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

不要輕易設置SetUID(SUID)權限,否則會帶來重大安全隱患!

2024-08-27 23:56:52
字體:
來源:轉載
供稿:網友

SetUID權限設置不當,會給 linux 系統造成重大安全隱患。

前面的例子中,我們試驗了將 passwd 命令取消 SUID 權限,這會導致 passwd 命令的功能失效。那么,如果我們手動給默認無 SetUID 權限的系統命令賦予 SetUID 權限,會出現什么情況呢?

比如說,我們嘗試給 Vim 賦予 SetUID 權限:

[root@localhost ~]# chmod u+s /usr/bin/vim
[root@localhost ~]# ll /usr/bin/vim
-rwsr-xr-x. 1 root root 1847752 Apr 5 2012 /usr/bin/vim

此時你會發現,即便是普通用戶使用 vim 命令,都會暫時獲得 root 的身份和權限,例如,很多原本普通用戶不能查看和修改的文件,竟然可以查看了,以 /etc/passwd 和 /etc/shadow 文件為例,普通用戶也可以將自己的 UID 手動修改為 0,這意味著,此用戶升級成為了超級用戶。除此之外,普通用戶還可以修改例如 /etc/inittab 和 /etc/fstab 這樣重要的系統文件,可以輕易地使系統癱瘓。

其實,任何只有管理員可以執行的命令,如果被賦予了 SetUID 權限,那么后果都是災難性的。普通用戶可以隨時重啟服務器、隨時關閉看得不順眼的服務、隨時添加其他普通用戶的服務器,可以想象是什么樣子。所以,SetUID 權限不能隨便設置。

有讀者可能會問,如何防止他人(例如黑客)對 SetUID 權限的惡意篡改呢?這里,給大家提供以下幾點建議:

  1. 關鍵目錄要嚴格控制寫權限,比如 "/"、"/usr" 等。

  2. 用戶的密碼設置要嚴格遵守密碼規范。

  3. 對系統中默認應該有 SetUID 權限的文件制作一張列表,定時檢査有沒有列表之外的文件被設置了 SetUID 權限。


前面 2 點不再做過多解釋,這里就最后一點,給大家提供一個腳本,僅供參考。

首先,在服務器第一次安裝完成后,馬上查找系統中所有擁有 SetUID 和 SetGID 權限的文件,把它們記錄下來,作為掃描的參考模板。如果某次掃描的結果和本次保存下來的模板不一致,就說明有文件被修改了 SetUID 和 SetGID 權限。命令如下:

[root@localhost ~]# find / -perm -4000 -o -perm -2000 > /root/suid.list
#-perm安裝權限査找。-4000對應的是SetUID權限,-2000對應的是SetGID權限
#-o是邏輯或"or"的意思。并把命令搜索的結果放在/root/suid.list文件中
接下來,只要定時掃描系統,然后和模板文件比對就可以了。腳本如下:
[root@localhost ~]#vi suidcheck.sh
#!/bin/bash
find / -perm -4000 -o -perm -2000 > /tmp/setuid.check
#搜索系統中所有擁有SetUID和SetGID權限的文件,并保存到臨時目錄中
for i in $(cat /tmp/setuid.check)
#循環,每次循環都取出臨時文件中的文件名
do
    grep $i /root/suid.list > /dev/null
    #比對這個文件名是否在模板文件中
    if ["$?"!="o"]
    #檢測測上一條命令的返回值,如果不為0,則證明上一條命令報錯
    then
        echo "$i isn't in listfile! " >>/root/suid_log_$(date +%F)
        #如果文件名不在模板文件中,則輸出錯誤信息,并把報錯寫入日志中
    fi
done
rm -rf/tmp/setuid.check
#刪除臨時文件
[root@localhost ~]# chmod u+s /bin/vi
#手工給vi加入SetUID權限
[root@localhost ~]# ./suidcheck.sh
#執行檢測腳本
[root@localhost ~]# cat suid_log_2013-01-20
/bin/vi isn't in listfile!
#報錯了,vi不在模板文件中。代表vi被修改了SetUID權限

這個腳本成功的關鍵在于模板文件是否正常。所以一定要安裝完系統就馬上建立模板文件,并保證模板文件的安全。

注意,除非特殊情況,否則不要手工修改 SetUID 和 SetGID 權限,這樣做非常不安全。而且就算我們做實驗修改了 SetUID 和 SetGID 權限,也要馬上修改回來,以免造成安全隱患。

SetGID 特殊權限的相關內容,下節會做詳細介紹。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武邑县| 玉溪市| 来宾市| 隆安县| 壶关县| 徐闻县| 西乌珠穆沁旗| 务川| 梨树县| 通城县| 奉化市| 宁国市| 五大连池市| 确山县| 林口县| 察隅县| 上虞市| 靖边县| 鸡东县| 百色市| 伊吾县| 东台市| 常德市| 阿尔山市| 郑州市| 贺州市| 修武县| 定日县| 连南| 海淀区| 合水县| 盐源县| 云梦县| 竹北市| 渑池县| 定安县| 合山市| 寻乌县| 新郑市| 广昌县| 荆州市|