環境功能

功能允許 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 已向後移植:

小型的安全性修正項目 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7f76ea2ef6739ee484a165ffbac98deb855d3d3 已向後移植:

驗證

生物 單元測試包含環境功能的單元測試。除此之外 「功能」然後在 Android init 中初始化關鍵字 服務就會獲得預期功能,可在執行階段 這項功能