1. 程式人生 > >Mac自帶系統讀取NTFS檔案系統

Mac自帶系統讀取NTFS檔案系統

將OS X系統下面自帶的mouts_ntfs預設載入方式從只讀改為讀寫。

使用root方式進行下面操作(切記明確每一個步驟,知道自己在做什麼,否則很容易摧毀系統)。

1. cd /sbin

2 mv mount_ntfs mount_ntfs_origin

3. vi mount_ntfs

新增以下程式碼:

#!/bin/sh
/sbin/mount_ntfs_orig -o rw,nobrowse "[email protected]"

儲存之後,修改以下許可權,chmod a+x mount_ntfs。

最後退出root身份。

有其他答案做類似操作時在 -o 引數里加了 nobrowse, 這個是讓 GUI 預設不可見, 即 Finder 的左邊欄 "裝置" 裡不出現, 找起來麻煩推出也麻煩, 個人建議不要加</del>
// 2014.05.06 更新, 如果 -o 引數裡不加 nobrowse 可能掛載上來的還是隻讀模式, 這個具體原因還沒研究清楚, 如果遇到掛載上去還是隻讀, 將腳本里 -o rw 改成 -o rw,nobrowse
// 為了方便訪問, 可以在 finder 裡用 cmd+shift+G 開啟跳轉, 輸 /Volumes 進入所有磁碟目錄, 然後在用 cmd+shift+T 將 /Volumes 儲存到邊欄。

root身份的解決:在OS X10.11.1版本前,可以在shell直接進行root身份。在之後為了安全,apple取消了這一個機制。

為了解釋OS X 10.11中引入的Rootless機制,我翻譯了Quora使用者Eldad Eilam的答案,原文連結見 這裡
定義問題
Rootless討論的前提是假定root賬戶是OS X(或者其他Unix系統)中對抗惡意程式保護作業系統的最後一道防線。意思是一個應用程式一旦獲得了root賬戶許可權,將會獲得系統的無限的許可權。就可以進行實時修改、修改磁碟、替換任何系統檔案等。
目前,許多傳統的Unix作業系統中,root賬戶都是被強密碼保護著的。這裡的問題在於大部分的OS X系統基本上是單使用者系統,也就是不存在單獨的root賬戶密碼,root密碼就是管理員賬戶的密碼。簡單來說,蘋果通過以下途徑來獲取root許可權:
authen
大部分使用者會毫不猶豫的輸入密碼,都不會想他們到底授權了什麼行為。更重要的是,授權給了什麼應用程式。可以說,對於一般的無經驗使用者,他們沒有時間和專業知識來考慮這個問題。他們不會意識到他們一旦輸入了密碼,請求的程序就會獲得root許可權。
什麼是系統整合保護(System Integrity Protection)?
使用了系統整合保護,蘋果決定第三方應用有一些永遠不會被允許的事情。從某些層面來講,這種保護和iOS更像了。第三方應用相比起來更受限制。這就是rootless一詞的由來,系統在某種程度上限制了管理員賬號的許可權。
rootless特性使得某些操作只有蘋果的應用可以被許可(通過程式碼簽名來判斷)。所以第三方應用即使是執行在root許可權中,有一些操作也無法完成。在我的測試中我注意到了以下幾點:
1./System資料夾下的所有檔案都不能被蘋果應用以外的程式修改(例如各種安裝器和升級部件)
2.當前的API例如task_for_pid不能在系統程序下被呼叫了。這意味著以前注入系統程序(Finder、Messages或者系統核心)的程式都不能用了。
3.有意思的是,rootless依然允許已簽名的KEXT核心拓展被載入。問題是KEXT可以進行許多無限制的系統及操作。
總結
Rootless機制的目的很明顯是改進安全性和可靠性,使得惡意軟體以及木馬很難滲透進系統。我很確信他將成為許多惡意軟體開發者的一個挑戰,不過我也很確定人們會發現這一機制很多薄弱的環節。
這個特性對於一些合法的軟體有很多副作用。對此,蘋果提供了一種方法使得使用者可以關閉這個特性,但這需要使用者以恢復模式啟動(開機按住Command+R)
如果想了解更多,可以參考蘋果的WWDC session視訊。
更新關閉方法,相容Beta7:
開機按住Command+R,進入恢復模式,開啟terminal,鍵入:
csrutil disable
回車,重新啟動即可。要重新恢復,只需將disable改為enable