標籤:

iOS的許可權管理機制是怎麼樣的呢?

本人沒用過ios,所以對ios不太懂。但平時總聽說這是一個xxxx的系統,所以想了解一下它到底有多牛。我知道ios應該與linux一樣,同屬unix-like系統。但它的許可權管理機制與linux有什麼區別呢。或者直接講它與同為手機系統的linux系的Android的許可權管理機制有什麼不一樣呢?

其實我主要是想了解下ios里會不會出現像安卓裡面xx程序獲取用戶通訊錄,截取用戶通話信息的情況。比如某裝機量超大的軟體~


題主所提到的許可權管理實際上需要分為兩個部分:

1. 文件許可權管理

2. 數據許可權管理

所謂文件許可權管理,就是Unix系統和類Unix系統內建的一套許可權管理,這套管理主要是通過調整文件的許可權,使得未被授權的用戶無法訪問對應的文件。

這一套許可權機制在iOS和Android上都存在,但是在iOS上基本上不會和用戶產生任何關聯,而在Android上和用戶的關係則是非常緊密的。產生這個區別的主要原因是:Android系統提供了一套完整的文件管理體系,而iOS沒有。

Android系統中,用戶可以通過軟體對機身內存和機器儲存卡內的大部分文件進行處理,在Root了之後更是可以對基本上所有的文件進行處理。在沒有Root或者沒有授予對應軟體SU許可權的時候,用戶操作軟體訪問文件目錄的許可權會收到系統內建類Unix文件管理許可權的約束。特定文件夾由於許可權問題會有無法讀取內容的狀態。

iOS系統中,用戶通過一個軟體是無法對於整個機器內置儲存進行處理的,除非進行越獄操作。iOS軟體安裝之後會在系統的mobile/Application文件夾中創建一個對應的軟體目錄,軟體可以處理的所有文件都被限制在這個安裝目錄(一般來說,某些方法可以繞過這個限制到Application文件夾裡面進行操作,不過軟體會被禁止登錄App Store),超過這個目錄的所有內容都無法通過文件操作的形式進行任何操作。這種封閉的保護,使得iOS平台不存在文件操作許可權這樣一個東西,因為iOS軟體能操作的部分就在那個文件夾裡面,而這個文件夾裡面的東西的許可權對於軟體來說是沒有區別的。

說完了文件許可權,再來說一說數據許可權。

所謂的數據許可權,就是軟體通過系統提供的API,也就是系統介面,訪問特定的資料庫的許可權。這裡說的資料庫一般來說有:通訊錄資料庫、簡訊資料庫、通話記錄資料庫、網路瀏覽記錄資料庫等等。

Android上,對於這部分許可權的設定是只提供用戶查看,不提供用戶禁止。Android用戶只能在安裝軟體或者在設置中查看軟體信息的時候查看到當前軟體所需要讀取的相應資料庫內容,除非通過第三方軟體,否則就沒有辦法禁止軟體對於相應資料庫的讀取。Android 4.3版雖然已經可以控制軟體對於這些資料庫的讀取,但是這部分功能還在隱藏狀態,而且使用上也存在一定得問題,可能還需要等到Android下一個或者下下個版本才會將這個功能提供給普通用戶使用。不過值得注意的是,在Android軟體獲取了SU許可權之後,軟體是可以讀取機器上的所有文件內容的,對於相應資料庫的訪問也可以不在受限於系統API了,理論上這個時候軟體可以完全讀取相應資料庫的所有內容而不會受任何系統限制的。

iOS上,所有軟體需要的讀取的數據都會在讀取的瞬間觸發系統的強制提示,這個時候用戶會看到一個系統提示框詢問是否授予軟體此項許可權。如果用戶選否,那麼軟體講無法獲取任何對應的內容。相關授權在進行過第一次詢問之後,用戶可以在『設置—隱私』中調整軟體的對應授權。當然,App Store中存在著某些通過私有API繞過iOS系統檢測機制讀取用戶數據的軟體,不過這些軟體所使用的相應私有API在iOS 6之後也會在進行數據讀取時觸發iOS系統的強制提示,我個人曾經做過一些測試,結果也表明iOS 6+系統對於相應數據的讀取操作是肯定會觸發許可權提示的。不過值得一提的是,越獄之後,由於軟體可以獲取整個機器內置儲存的訪問許可權,從某種程度上來說,軟體可以直接讀取對應的資料庫內容而無需通過API進行訪問,這個時候的隱私選項和許可權限制也就形同虛設了。

當然這部分還有些不同在於,iOS系統並不提供對於簡訊、通話記錄等Android系統提供讀取介面,所以有些東西,除非用戶越獄,是一定無法被軟體讀取的。

========體內酒精含量:0.4%==========

上面所有內容如果有錯誤,歡迎指正

只接受討論,不接受無意義謾罵和無觀點評論

謝謝

(這是免責聲明的說)


所有要讀取通訊錄的必須要先向系統申請,並且可以隨時關掉。

android雖然安裝的時候會聲明,但只能全盤接受或者全盤拒絕。


推薦閱讀:

TAG:iOS | 操作系統 |