-
root權限
鎖定
- 中文名
- root權限
- 外文名
- root access
- 地 位
- Android系統最高權限
- 作 用
- 備份系統
- 操作平台
- Unix,Linux及其他類Unix系統
root權限簡介
root權限,系統權限的一種,也叫根權限,與SYSTEM權限可以理解成一個概念,但高於Administrator權限,root是Linux和unix系統中的超級管理員用户帳户,該帳户擁有整個系統至高無上的權力,所有對象他都可以操作。獲得root權限之後就意味着已經獲得了系統的最高權限,這時候你可以對系統中的任何文件(包括系統文件)執行所有增、刪、改、查的操作。手機root權限是andriod的使用最高權限,獲取了root權限,可以輕鬆的對手機刷機備份還原卸載系統文件等重要操作。為了避免在應用Android平台時的一些潛在風險,廠商的通用做法就是設置SecureLock安全鎖定和限制Root權限。這種做法在保證安全的同時,一定程度上也限制了Android系統潛能的發揮。
[1]
root權限Root原理
目前獲取Android root權限常用方法是通過各種系統漏洞,替換或添加SU程序到設備,獲取Root權限,而在獲取root權限以後,會裝一個程序用以提醒用户是否給予程序最高權限,可以一定程度上防止惡意軟件,通常會使用SuperSU,這種方法通常叫做“不完全Root”。而“完全ROOT”是指,替換設備原有的ROM,以實現取消secure設置
[2]
。
intmain(intargc,char**argv)
{
/*Untilwehavesomethingbetter,onlyrootandtheshellcanuse
su.*/
myuid=getuid();
if(myuid!=AID_ROOT&&myuid!=AID_SHELL){
fprintf(stderr,"su:uid%dnotallwedtosu\n",myuid);
return1;
}
if(exevp(argv[2],exec_args)<0){
}
/*Defaultexecshell.*/
execlp("/systm/bin/sh","sh",NULL);
}
可以看出只允許getuid()為AID_ROOT和AID_SHELL的進程可以繼續執行,否則直接返回,這就決定了只有當前用户為root和shell才能運行su。接下來執行execvp(argvexec_args),su並沒有通過fork去創建一個新的進程,而是直接把自己啓動一個新的進程,此時原先執行的程序實際上由su來創建的。通常情況下,執行su並不會帶參數,於是它會執行execlp("/system/bin/sh","sh",NULL);通過命令行查看此程序權限ls–l/bin/su-rwsr-xr-x1rootroot368642010-01-2701:09/bin/su由上可以看到,su的所有者和所有組都是root,並且其設置了SUID和SGID。實際用户ID和實際用户組ID:標識我是誰。也就是登錄用户的uid和gid。有效用户ID和有效用户組ID:進程用來決定我們對資源的訪問權限。一般情況下,有效用户ID等於實際用户ID,有效用户組ID等於實際用户組ID。當設置-用户-ID(SUID)位設置,則有效用户ID等於文件的所有者的uid,而不是實際用户ID;同樣,如果設置了設置-用户組-ID(SGID)位,則有效用户組ID等於文件所有者的gid,而不是實際用户組ID。由此可以得出,當一個其他用户或者用户組的進程來執行su的時候,正常情況下會因為用户ID不是root而被拒絕。但是,如果它能夠跳過檢查UID這一步,即能夠使自己的進程獲得和su相同的root的權限
[2]
。
這樣就可以看出Android系統的破解的根本原理就是替換掉系統中的su程序,因為系統中的默認su程序需要驗證實際用户權限(只有root和shell用户才有權運行系統默認的su程序,其他用户運行都會返回錯誤)。而破解後的su將不檢查實際用户權限,這樣普通的用户也將可以運行su程序,也可以通過su程序將自己的權限提升
[2]
。
在Unix系統(如AIX、BSD等)和類UNIX系統(如Debian、Redhat、Ubuntu等各個發行版的Linux)中,系統的超級用户一般命名為root。root是系統中唯一的超級用户,具有系統中所有的權限,如啓動或停止一個進程,刪除或增加用户,增加或者禁用硬件等等。
root就是手機的神經中樞,它可以訪問和修改你手機幾乎所有的文件,這些東西可能是製作手機的公司不願意你修改和觸碰的東西,因為他們有可能影響到手機的穩定,還容易被一些黑客入侵(Root是Linux等類UNIX系統中的超級管理員用户帳户。)
“root”是安卓系統中的最高管理員,獲取它也就代表你可以隨意控制該系統中任意一項功能。生產廠商是不會給手機配置root權限的。注意:獲取root權限是有風險的,不要隨便嘗試。
root權限作用
3)可以修改手機系統,也就是root後可以給安卓手機刷機,體驗不同安卓系統的樂趣。修改系統的內部程序和文件,如修改build.prop來DIY手機信息。
4)可以把一些程序應用安裝在SD卡上(Android2.2以下默認是不支持的),減輕手機負擔。
5)可以卸載系統程序(需謹慎使用),可以刪除原廠系統自帶的感覺沒什麼用的軟件。
root權限優點
2)用户可以使用一些需要root權限才能運行的應用程序,比如截屏、開機自啓動等。
3)用户可以更改系統核心策略,例如CPU性能優先還是節電優先,從而延長設備的使用壽命、擴展設備的功能。
root權限缺點
1)獲取root權限可能會造成額外的手機售後成本,所以會被一些手機生產商不認可,造成失去保修。
2)使用root方法可能會存在一些風險,若獲取root失敗,可能手機無法開機。
3)錯誤使用root權限,可能會造成核心數據的丟失。
root權限注意事項
1)如果惡意軟件獲取root權限之後,將對系統造成不可修復的破壞,用户存儲在手機上的所有隱私都將暴露在惡意軟件之下。
3)設備系統獲取root權限之後,任何軟件都能對系統文件進行任意操作,對系統的穩定性產生極大的影響。
root權限權限提升
Android設備廠商發售的出廠設備沒有開放Android root權限,而是級別相對低的Android用户權限,低權限使得用户在操作設備的過程中遇到很多制問題,系統無法發揮出最大的功能,解決辦法就是進行權限提升。就是將Android系統的權限從低等級的Android用户權限提升到高等級的Android root權限。
[3]
root權限權限提升漏洞
漏洞,也叫脆弱性,是指系統在硬件、軟件、協議的具體實現和系統安全策略上存在的缺陷和不足,從廣義上講,漏洞是指一切威脅、破壞系統可靠性、可用性、保密性、完整性、可控性、不可抵賴性的因素。權限提升漏洞,也叫提權漏洞,是指那些可以被利用來實現權限提升技術的漏洞,通常發生於驅動程序、系統核心組件或擁有高權限的服務進程等程序中。由於這些程序在設計過程中的代碼瑕疵或邏輯錯誤,使得低權限的程序可以不通過合法審查而獲得高權限,從而獲取訪問更多系統資源的權利。提權漏洞和所有其它類型的漏洞一樣,也是程序開發中無法完全避免的,它的產生原因不是故意行為。
[3]
root權限權限提升軟件
權限提升軟件,即“一鍵ROOT軟件”,原理是通過編寫代碼觸發Android提權漏洞,通過不同的方法繞過Android權限安全機制,獲取臨時root權限,改寫系統內部的一些文件,從而獲得root權限。目前已經公開在網絡上的可使用的提權軟件,比較知名的包括UniversalAndroot、Kingroot、SuperOneClick、z4root、GingerBreak、ZergRush等等。同時,已被捕獲的典型Android平台病毒/木馬主要包括索馬里海盜、GingerMaster、DroidDream、RecordSpy、Droidkungfu等等。
[3]
root權限新版系統
root新版系統的過程相對簡單,至少符合特定的要求。運行Android L的Nexus 5和Nexus 7(2013)用户需要先刷入定製Recovery和Chainfire SuperSU,然後再刷入與自己設備相匹配的鏡像便可。
但如外界所預料的那樣,即使獲取了root權限,應用程序已經無法像從前那樣在系統分區進行寫入了。不過升級到了新安全環境的應用依然可以訪問系統分區。
考慮到並非所有應用都已獲得升級,因此許多需要root權限的應用在Android L當中都無法正常工作,比如鈦備份。但隨着越來越多的應用進行升級,Android L的root權限也將會變得更加實用。