1、什麼是SetUID
我們知道,在linux的指令行下執行“ps”指令時,就會列出目前系統中的所有程序,在其中可以看到每個程序都和使用者的真實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”指令可以設定SetUID權限,使用“chmod xxx filename”指令即可取消SetGID權限,如果執行“chmod 6xxx filename”指令,即可同時為指定檔案設定SetUID和SetGID,執行指令“chmod 0xxx filename”,即可同時取消指定檔案的SetUID和SetGID權限。例如以Root使用者登陸系統,執行“chmod 0511 /usr/bin/passwd”指令,就可以取消“passwd”指令的SetUID權限,這樣普通使用者就無法修改自己的密碼了。
3、SetUID權限的安全性
使用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權限,也是無效的。這樣就在很大程度上保護了系統的安全。
文章出處:http://hi.baidu.com/jbmibzpdmobckmd/item/f2910293df9222b983d295be