當我將手機連接到計算機時,我使用「adb shell」命令與手機進行通信並輸入ps命令輸出當前在手機上運行的進程信息,我發現兩個特殊用戶,一個是root,另一個是系統,據我所知,基於linux的android,所以root用戶是bigest權限的用戶,但我迷惑系統用戶,也許我可以認爲它是一個正常的用戶在Linux系統,但它在Android中是特殊的,它有很多與Android相關的權限,所以有人可以告訴我root用戶和系統用戶的真正不同,以及爲什麼android需要添加一個系統用戶?謝謝: )android系統用戶和linux root用戶有何區別
20
A
回答
21
就Linux而言,system
用戶只是普通用戶(UID 1000)。然而,Android服務賦予它特殊的權限,您可以訪問幾乎任何東西。大多數服務有這樣的地方代碼:
private static final void enforceSystemOrRoot(String message) {
final int uid = Binder.getCallingUid();
if (uid != Process.SYSTEM_UID && uid != 0) {
throw new SecurityException(message);
}
}
什麼,做是拒絕訪問任何人誰不是root或system
。 shell
用戶(UID 2000)(你在做adb shell
時得到的)是另一個擁有很多權力的用戶(許多組的成員)。參看
system
:
$ su 1000
$ id
uid=1000(system) gid=1000(system)
groups=1003(graphics),1004(input),1007(log),1009(mount),
1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),
3002(net_bt),3003(inet),3006(net_bw_stats)
shell
:
$ adb shell
[email protected]:/ $ id
uid=2000(shell) gid=2000(shell)
groups=1003(graphics),1004(input),1007(log),1009(mount),
1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),
3002(net_bt),3003(inet),3006(net_bw_stats)
Android使用一個單獨的用戶對每一個應用程序和系統服務也有其專用的用戶(media
,radio
,wifi
等)。很少有東西以root身份運行(主要是本地守護進程)。
0
系統用戶無法訪問其他用戶的文件。
如果你這樣做: ls -l命令/data/data/com.google.android.gm/shared_prefs/
你得到了 '權限被拒絕'
如果你是root用戶,你可以做任何事情。 您可以訪問所有文件系統,擦除所有數據。
您還可以重啓手機等
相關問題
- 1. MySQL和系統'root'帳戶
- 2. 在系統帳戶和用戶帳戶下運行有什麼區別?
- 3. 系統範圍的vimrc和用戶的vimrc有什麼區別?
- 4. 基於Linux的嵌入式系統上的root用戶
- 5. 列出所有沒有系統用戶的Linux用戶
- 6. 客戶和用戶有什麼區別?
- 7. Windows管理員用戶和Windows系統用戶之間的區別是什麼
- 8. Qt QMainWindow用戶關閉和系統中止之間的區別
- 9. 如何在Debian Linux系統上將h5py(+ numpy + libhdf5 + ...)安裝爲非root用戶
- 10. Linux操作系統和移動操作系統之間的根本區別(android)
- 11. 用戶與內核之間的區別系統調用
- 12. 操作系統中的用戶模式和內核模式有什麼區別?
- 13. 如何用戶cloudant發送android系統
- 14. rails設計:用戶和帳戶系統
- 15. android/linux如何設置root用戶是登錄還是普通用戶登錄?
- 16. 從root帳戶(Linux)Bash腳本和用戶主頁
- 17. Linux和OSX的文件系統有什麼區別?
- 18. Django客戶端和Extranet用戶區別
- 19. 哪一個是最佳實踐:系統中所有登錄用戶或多個用戶帳戶的root帳戶
- 20. PHP用戶帳戶系統
- 21. 用戶帳戶系統PHP
- 22. 無法更改文件權限的Linux系統上的root用戶
- 23. Linux與Hadoop文件系統的區別
- 24. 使用PHP的用戶緩存和系統緩存之間的區別APC
- 25. 用戶postgres和超級用戶有什麼區別?
- 26. 如何區分系統的訪問者和用戶?
- 27. 如何區分系統過程PID和用戶過程PID?
- 28. WordPress用戶系統
- 29. 多用戶系統
- 30. Node.js用戶系統
所以,如果我得到SYSYEM PRIVS,可我用它來根設備或我需要真正的UID爲0? – Seth
如果您設法訪問'system',您仍然需要找到一種方法將權限提升到root。但是,您需要特權服務中的漏洞才能完成此操作。 –
@NikolayElenkov如何在adb shell中使用系統用戶?當我在Samsung 4上執行su 1000時,它顯示su命令未找到... –