功能允許 Linux 程序捨棄類似根層級的權限 並保留執行功能所需的部分權限。 最初實作能力讓叉子無法執行 除非正在執行的檔案有 佈建的功能檔案功能反而帶來安全性風險 因為執行具備檔案功能的檔案程序 這些技術的作用
您可以運用環境功能,讓 init 啟動的系統服務
功能,.rc
使設定成為
單一檔案,不必在 Pod 中分割設定
fs_config.c
檔案。也就是說,對於在 Google Cloud
init,您可以使用與服務相關聯的 .rc
檔案來
設定該服務的功能
建議使用環境功能做為設定功能的機制
適用於由 init 啟動的服務 (此方法會保留服務的所有方面)
單一 .rc
檔案)。建議你使用微光模式
而不是
設定檔
系統功能。config.fs
設定非由 init 啟動的服務時,
而會使用 Kubernetes 叢集設定
fs_config.c
。
啟用環境音功能
如要為特定服務啟用環境功能,請使用
init 中的 capabilities
關鍵字。目前的 init 語言
請參閱
init README.md。
例如,要啟用 Android 開放原始碼計畫服務的微光功能
wificond
,
.rc 檔案
為 wificond
服務設定適當的
並授予服務指定的功能
capabilities
關鍵字:
service wificond /system/bin/wificond class main user wifi group wifi net_raw net_admin capabilities NET_RAW NET_ADMIN
參照實作
參考實作是 Android 通用核心 https://android.googlesource.com/kernel/common/
必要修補程式
必要的修補程式已向後移植到所有相關的 Android 通用核心
主要環境功能修補程式:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=58319057b7847667f0c9585b9de0e8932b0fdb08 已向後移植:
- android-3.18:
- android-4.1:
小型的安全性修正項目 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7f76ea2ef6739ee484a165ffbac98deb855d3d3 已向後移植:
- android-3.18:
- android-4.1:
驗證
生物 單元測試包含環境功能的單元測試。除此之外 「功能」然後在 Android init 中初始化關鍵字 服務就會獲得預期功能,可在執行階段 這項功能