SetUid的權限問題

1什麼是SetUID
我們知道,在Linux的命令行下執行“ps -aux”命令時,就會列出當前系統中的所有進程,在其中可以看到每個進程都和用戶的真實id關聯,實際上,Linux中的每個進程還跟一個稱爲有效用戶id(set User id)緊密關聯。前者用於表示該進程由那個用戶控制,後者用於爲新建立的文件分配所有權,檢查文件訪問許可等操作,同時有效用戶爲該文件的所有。linux系統內核允許一個進程以調用一個SetUID程序(或顯示執行SetUID系統調用)的方式,來改變其自身的有效用戶id。
2如何配置SetUID權限
在linux中,不管是Root用戶還是普通用戶,都可以使用“Password”命令來更改自身的密碼。但是,Linux中的密碼通常是保存在“/etc/paswd”和“/etc/shadow”文件中,這兩個文件對系統安全至關重要,因此只有Root用戶才能對其執行讀寫操作。以管理員的身份登陸系統,在Linxu提示符下執行“ls /etc/passwd /etc/shadow”命令,在返回信息中可以看到普通用戶對上述這兩個文件並沒有寫權限,因此從文件屬性的角度看,普通用戶在更改自身密碼時,是無法將密碼信息寫入到上述文件中的,哪麼用戶是怎樣成功的更改密碼的呢?實際上,問題的關鍵不在於密碼文件本身,而在於密碼更改命令“passwd”。在提示符下執行命令“ls /usr/bin/passwd”,在返回信息中的文件所有者執行權限位上顯示“S”字樣,表示“passwd”命令具有SetUID權限,其所有者爲Root,這樣普通用戶在執行“passwd”命令時,實際上以有效用戶root的身份來執行的,並具有了相應的權限,從而將新的密碼寫入到“/etc/passwd”和“/etc/shadow”文件中,當命令執行完畢,該用戶的身份立即消失。如何設置SetUID權限呢?使用“chmod”命令即可爲指定文件設置SetUID權限,例如“chmod 4xxx filename”命令,取消SetUID權限的命令爲“chmod xxx filename”。類似的,執行“chmod 2xxx filename”命令可以設置SetGID權限,使用“chmod xxx filename”命令即可取消SetGID權限,如果執行“chmod 6xxx filename”命令,即可同時爲指定文件設置SetUID和SetGID,執行命令“chmod 0xxx filename”,即可同時取消指定文件的SetUID和SetGID權限。例如以Root用戶登陸系統,執行“chmod 0511 /usr/bin/passwd”命令,就可以取消“passwd”命令的SetUID權限,這樣普通用戶就無法修改自己的密碼了。
3SetUID權限的安全性
使用SetUID可以靈活的調整所有文件所有者權限,但是也爲系統的安全性帶來了隱患。如果Root用戶爲指定的程序文件配置過大的SetUID權限,那麼就會爲黑客或者非法用戶打開了侵入系統的大門。例如在Linux中可以使用“vi”命令來編輯文件,但是,對於普通用戶而言,當其試圖使用命令“vi /etc/shadow”來修改密碼文件時,系統就會彈出“/etc/shadow : Permission Denied”的警告提示,從而禁止其對密碼文件的非法修改。但是,如果在Root用戶環境中執行“which vi”命令,就可以看到“vi”命令實際上是“vim”命令的別名,其真實路徑爲“/usr/bin/vim”,這樣執行命令"chmod 6755 /usr/bin/vim",就可以將“vi”命令的所有者更改爲Root,這樣在普通的用戶環境中,就可以使用“vi”命令來編輯任何文件(例如“/etc/shadow”),這樣,即使是普通用戶也可以將密碼文件清空,從而實現無密碼登陸Linux,給系統的安全帶來的威脅不言而喻。因此,對可能給系統安全帶來危害的程序來說,應該儘量不要隨意爲其配置SetUID權限。
4 如何禁用SetUID權限
對於存放在敏感數據的分區而言,有時可能希望禁用SetUID權限設置功能。例如對"/home" 分區禁用SetUID權限,可以找到修改其配置文件“/etc/fstab”, 執行命令“vi /rtc/fstab”,可以看到“LABEL=/home /home ext3 defaults 1 2”等數據,我們只需在上述“default”關鍵字的後面添加“nosuid” 關鍵字即可,例如使用“vi”命令將其修改爲“LANBEL=/home /home ext3 default , nosuid 1 2”,之後執行命令“mountoremount /home”,這樣即使對“/home”分區上的任何可執行文件配置了SetUID權限,也是無效的。這樣就在很大程度上保護了系統的安全。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章