作者 主題: 奇怪的檔案系統?  (閱讀 872 次)

0 會員 與 1 訪客 正在閱讀本文。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
奇怪的檔案系統?
« 於: 2014-02-26 13:46 »
先說這是 Android 的問題, 不過底層是 linux, 應該可以扯到一點關係吧.

就目前 android 或 linux 的安全設計來看, 有沒有可能在不同的 user 空間, 所建立的檔案會讓不同的使用者空間的使用者不能讀寫或執行? 如果有, 這是什麼機制?

案例:
機器: Acer A1-810/811 (未 root)
使用 FramaRoot 1.9.1 的版本配合 custom script 來 root (透過自訂的 script 來把 su 放到 /system/bin/ 下面)
經由該 script 的 log 來看, id 看出 user 變成 root (不過 group 還不是), 透過 busybox 的 mount 指令, 也可以把 /system remount 為可讀寫, 然後把 su 放到 /system/bin 下面, 也可以改 owner/group 與檔案屬性....

不過, 這時, 本身 Android GUI 上面的使用者, 在檔案列表上面可以看到 su 這個檔案, 但是讀取會說找不到檔案, 執行也是找不到檔案... 透過 adb shell 去看, ls 看的到, 讀或執行都是找不到檔案.

如果再做一次, 會發現該目錄同樣的檔名 /system/bin/su 會出現兩個 (因為每次跑 FramaRoot 在取得 root 身份之前的 user id 是不一樣的)...

這是檔案系統的特殊功能? 還是 kernel 上面有什麼安全機制可以做到這種現象?

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: 奇怪的檔案系統?
« 回覆 #1 於: 2014-02-27 18:42 »
先說這是 Android 的問題, 不過底層是 linux, 應該可以扯到一點關係吧.

就目前 android 或 linux 的安全設計來看, 有沒有可能在不同的 user 空間, 所建立的檔案會讓不同的使用者空間的使用者不能讀寫或執行? 如果有, 這是什麼機制?

案例:
機器: Acer A1-810/811 (未 root)
使用 FramaRoot 1.9.1 的版本配合 custom script 來 root (透過自訂的 script 來把 su 放到 /system/bin/ 下面)
經由該 script 的 log 來看, id 看出 user 變成 root (不過 group 還不是), 透過 busybox 的 mount 指令, 也可以把 /system remount 為可讀寫, 然後把 su 放到 /system/bin 下面, 也可以改 owner/group 與檔案屬性....

不過, 這時, 本身 Android GUI 上面的使用者, 在檔案列表上面可以看到 su 這個檔案, 但是讀取會說找不到檔案, 執行也是找不到檔案... 透過 adb shell 去看, ls 看的到, 讀或執行都是找不到檔案.

如果再做一次, 會發現該目錄同樣的檔名 /system/bin/su 會出現兩個 (因為每次跑 FramaRoot 在取得 root 身份之前的 user id 是不一樣的)...

這是檔案系統的特殊功能? 還是 kernel 上面有什麼安全機制可以做到這種現象?

小弟不知道答案的猜想
可能是 acer 的 java 工程師的 bug
會這麼猜想是因為 , java 要 setuid 並不容易
當由 root 執行 , 又要模擬出一般使用者
在 unix-like 下的權限大多使用 readir (root 權限) 與當前模擬的一般使用者做純字串比對
這時 setuidbit 這種檔案權限 , group 很多等就容易出錯

不知改 755 會不會也 show 兩次 ?


twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 奇怪的檔案系統?
« 回覆 #2 於: 2014-02-28 11:06 »
那個感覺像是每個 user 有獨立的 session 空間, 當檔案異動時, 每個 session 只看的到自己的那一個空間, 所以改的東西別人讀不到也用不到.
所以同一個目錄下, 每個 user 都可以建立一個相同檔名的檔案, 有各自的內容與屬性, 不會影響到別人.

不過, 如果是上面這種情形, 奇怪的是 ls 為什麼會看到的檔案?

印象中, ext4 應該沒有這個功能吧....