當前位置:首頁 » 安卓系統 » 安卓selinux有什麼用

安卓selinux有什麼用

發布時間: 2022-01-11 07:01:18

A. 安卓selinux停用怎麼開啟

如果要恢復運行SELinux則可以運行

# setenforce
1

這條命令會把SELinux設定成Enforcing模式

2.把SELinux永久設定為Permissive模式

這里需要講一下Permissive和Enforcing模式的區別。
SELinux有三種模式:Enforcing, Permissive and Disable.

Enforcing模式就是應用SELinux所設定的Policy,
所有違反Policy的規則(Rules)都會被SELinux拒絕
Permissive和Enforcing的區別就在於它還是會遵循SELinux的Policy,但是對於違反規則的操作只會予以記錄而並不會拒絕操作

Disable 顧名思義就是完全禁用SELinux

如果要永久設定為Permissive模式,我們就要修改SELinux的配置文件
/etc/sysconfig/selinux (在RHEL5下這是一個symbolic link to /etc/selinux/conf)
# This file controls the state of SELinux on the
system.
# SELINUX= can take one of these three
values:
# enforcing - SELinux security policy is
enforced.
# permissive - SELinux prints warnings instead of
enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
#
SELINUXTYPE= type of policy in use. Possible values are:
# targeted -
Only targeted network daemons are protected.
# strict -
Full SELinux protection.
SELINUXTYPE=targeted

修改SELINUX=permissive,然後重新啟動就可以了

B. SElinux是什麼,安卓打開了SELinux有什麼用

如果要恢復運行SELinux則可以運行
# setenforce
1
這條命令會把SELinux設定成Enforcing模式
2.把SELinux永久設定為Permissive模式
這里需要講一下Permissive和Enforcing模式的區別。
SELinux有三種模式:Enforcing, Permissive and Disable.
Enforcing模式就是應用SELinux所設定的Policy,
所有違反Policy的規則(Rules)都會被SELinux拒絕
Permissive和Enforcing的區別就在於它還是會遵循SELinux的Policy,但是對於違反規則的操作只會予以記錄而並不會拒絕操作
Disable 顧名思義就是完全禁用SELinux
如果要永久設定為Permissive模式,我們就要修改SELinux的配置文件
/etc/sysconfig/selinux (在RHEL5下這是一個symbolic link to /etc/selinux/conf)
# This file controls the state of SELinux on the
system.
# SELINUX= can take one of these three
values:
# enforcing - SELinux security policy is
enforced.
# permissive - SELinux prints warnings instead of
enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
#
SELINUXTYPE= type of policy in use. Possible values are:
# targeted -
Only targeted network daemons are protected.
# strict -
Full SELinux protection.
SELINUXTYPE=targeted
修改SELINUX=permissive,然後重新啟動就可以了

C. 安卓關閉selinux好處

你好朋友
1. 禁止selinux

1.1 在內核中關閉selinux編譯選項CONFIG_SECURITY_SELINUX
1.2 還可以在system.prop中定義ro.boot.selinux=disable
這兩種方法都可以禁用selinux,也可以設置成ro.boot.selinux=permissive
寬容模式
1.3 可以通過setenforce1開啟enforce模式,setenforce 0為permissive模式
getenforce獲取當前模式

2. 所有安全策略最終編譯成sepolicy文件放在root目錄下,init進程啟動後會讀取/sepolicy策略文件,並通過/sys/fs/selinux/load節點
把策略文件內容寫入內核

3 安全上下文存放root目錄
/etc/security/mac_permissions.xml
/file_contexts //系統中所有file_contexts安全上下文
/seapp_contexts //app安全上下文
/property_contexts //屬性的安全上下文
/service_contexts //service文件安全上下文

genfs_contexts //虛擬文件系統安全上下文

4. app在/data/data/文件的安全上下文設置過程
1. 根據uid,pkgname,seinfo在seapp_contexts中匹配.
2. 根據匹配到的contexts,重新設置給相對應文件

5. 系統中所有的object class 定義在external/sepolicy/security_classes中.
object class使用在allow語句中,object class所具有的操作定義在external/sepolicy/access_vectors
文件中

6 allow語句
allow語句用來許可權設置
rule_name source_type target_type : class perm_set

rule_name : 有allow,neverallow
source_type : 許可權主體,表示source_type對target_type有perm_set描述的許可權
如:
allow zygote init:process sigchld
允許zygote域裡面的進程可對init域的進程發送sigchld信號

typeattribute表示把屬性和type關聯起來

7 role定義
Android系統中的role定義在external/sepolicy/roles中,
目前只定義了r

8 socket使用
以/data/misc/wifi/sockets/wlan0 socket來說明使用方法
1. 定義socket type
type wpa_socket ,file_type
2. 指定安全上下文
/data/misc/wifi/sockets(/.*)? u:object_r:wpa_socket:s0
給/data/misc/wifi/sockets目錄下所有的文件統一指定安全上下文為wpa_socket
3.聲明socket使用許可權
在進程te中使用unix_socket_send(clientdomain, wpa, serverdomain)即可建立socket連接

9binder使用
在使用binder進程的te中根據情況使用如下宏:
binder_use(domain)//允許domain域中的進程使用binder通信
binder_call(clientdomain, serverdomain)//允許clientdomain和serverdomain域中的進程通信
binder_service(domain)//標志domain為service端

10 文件的使用
以/dev/wmtWifi來說明:
1.定義type
type wmtWifi_device dev_type //dev_type用來標志/dev/下的文件
2.給/dev/wmtWifi指定完全上下文
/dev/wmtWifi(/.*)? u:object_r:wmtWifi_device:s0

3.進程許可權設置
在進程te文件中allow許可權
allow netd wmtWifi_device:chr_file { write open };

11 property 屬性設置
以藍牙的各種屬性來說明
1.定義type
type bluetooth_prop, property_type;
2設置安全上下文
bluetooth. u:object_r:bluetooth_prop:s0
3進程許可權設置
allow bluetooth bluetooth_prop:property_service set;

5 專業詞彙
MLS :Multi-Level Security
RBAC :Role Based Access Control
DAC :Discretionary Access Control
MAC :Mandatory Access Control
TEAC :Type Enforcement Accesc Control
望採納祝你好運

D. 如何手動關閉安卓手機的selinux,求詳細解答

1、首先打開華為手機,可以看到頁面上方有一些運行的圖標,把屏幕從頂端往下滑動。

E. 什麼安卓系統內核支持SELinux

在Redhat Enterprise Linux 4.0或Fedora Core 2 Linux以上版本的Linux中,有不少用戶經常會遇到諸如apache的Permission denied,X windows打不開等等問題,拋開一些常規配置錯誤外,很大一部分原因是因為激活了SELinux的緣故。

什麼是SELinux?SELinux全稱是Security Enhanced Linux,由美國國家安全部(National Security Agency)領導開發的GPL項目,它擁有一個靈活而強制性的訪問控制結構,旨在提高Linux系統的安全性,提供強健的安全保證,可防禦未知攻擊,據稱相當於B1級的軍事安全性能。比MS NT所謂的C2等高得多。應用SELinux後,可以減輕惡意攻擊或惡意軟體帶來的災難,並提供對機密性和完整性有很高要求的信息很高的安全保障。 SELinux vs Linux普通Linux安全和傳統Unix系統一樣,基於自主存取控制方法,即DAC,只要符合規定的許可權,如規定的所有者和文件屬性等,就可存取資源。在傳統的安全機制下,一些通過setuid/setgid的程序就產生了嚴重安全隱患,甚至一些錯誤的配置就可引發巨大的漏洞,被輕易攻擊。而 SELinux則基於強制存取控制方法,即MAC,透過強制性的安全策略,應用程序或用戶必須同時符合DAC及對應SELinux的MAC才能進行正常操作,否則都將遭到拒絕或失敗,而這些問題將不會影響其他正常運作的程序和應用,並保持它們的安全系統結構。SELinux on Redhat Linux在RHEL4.0或FC3以上的版本中,可以在安裝時就選擇是否激活SELinux,系統自動會安裝相應的內核、工具、程序等。由於 SELinux的MAC機制將極大的影響了現有引用,因此RHEL4/FC3中已預配置了大量兼容現有應用的安全策略。SELinux的配置相關文件都在 /etc/selinux下,其中/etc/selinux/targeted目錄里就包含了策略的詳細配置和context定義,以下是主要文件及功用:/etc/selinux/targeted/contexts/*_context 默認的context設置/etc/selinux/targeted/contexts/files/* 精確的context類型劃分/etc/selinux/targeted/policy/* 策略文件使用Redhat 默認的策略對正常應用帶來的影響比較小,兼容性相對比較好。對於需要提供虛擬主機或大量應用的用戶而言,則會帶來不小的麻煩,需要仔細閱讀SELinux 的手冊進行調整。其中Fedora Core 的官方網站上有相關的Apache/SELinux的策略調整文檔,建議web用戶仔細閱讀。激活SELinux的操作系統,需要對策略和模式進行變更時,一般不需要重啟動即可獲得變化,主要就是透過libselinux軟體包實現。 libselinux包含了對策略的控制/管理工具,其中getsebool/setsebool是讀取/設置SELinux 布爾值的工具,getenforce/setenforce則是設置強制性的工具。Why SELinux?毫無疑問:安全!如今Internet上病毒、攻擊層出不窮,信息安全受到了嚴重威脅,而普通Linux的安全性要做得很好並不容易,且沒有一個中央化的安全體系結構,因此使用SELinux可以使用強制的訪問控制來進行小顆粒度的許可權控制,並提高系統的穩定性,簡化了防系統崩潰的調整工作,達到信息保密和完整性的要求。SELinux主要的改進在於:# 對內核對象和服務的訪問控制# 對進程初始化、繼承和程序執行的訪問控制# 對文件系統、目錄、文件和打開文件描述的訪問控制# 對埠、信息和網路介面的訪問控制。SELinux still difficult控制的東西越多使用起來就越容易復雜,SELinux也不例外,目前SELinux還在不斷完善中,管理和控制策略並不是一件輕松的事,需要豐富的系統知識和經驗,並且必須仔細閱讀SELinux相關的文檔,做大量的嘗試。

F. 如何更改安卓的selinux狀態為permissive

1 命令查看出selinux的狀態
sestatus -v
2 臨時關閉 selinux
setenforce 0
3 永久關閉selinux
vi /etc/sysconfig/selinux
把里邊的一行改為
SELINUX=disabled

G. android 修改了selinux之後 怎麼驗證

特別注意:對初學者而言,attribute和type的關系最難理解,因為「attribute」這個關鍵詞實在是沒取好名字,很容易產生誤解:
實際上,type和attribute位於同一個命名空間,即不能用type命令和attribute命令定義相同名字的東西。
其實,attribute真正的意思應該是類似type(或domain) group這樣的概念。比如,將type A和attribute B關聯起來,就是說type A屬於group B中的一員。
使用attribute有什麼好處呢?一般而言,系統會定義數十或數百個Type,每個Type都需要通過allow語句來設置相應的許可權,這樣我們的安全策略文件編起來就會非常麻煩。有了attribute之後呢,我們可以將這些Type與某個attribute關聯起來,然後用一個allow語句,直接將source_type設置為這個attribute就可以了:
這也正是type和attribute位於同一命名空間的原因。

H. selinux是什麼安卓5.0貌似強制開啟閱豐2s能開啟嗎

閱豐2S用的是網路雲ROM閱讀尊享版系統,它是由網路官方為閱豐品牌量身定製的基於安卓4.3系統深度優化的,UI交互超級炫,上網又巨省流量,值得入手。

I. 安卓代碼能不能實現關閉SElinux許可權

不可以
1.3 方法1:adb在線修改

關閉 seLinux:

打開seLinux:

Enforcing:seLinux已經打開;
Permissive:seLinux已經關閉;

1.4 方法2: 從kernel中徹底關閉 (用於開機初始化時的seLinux許可權問題,要重編bootimage)

修改LINUX/android/kernel/arch/arm64/configs/XXXdefconfig文件(找相應config文件)
去掉CONFIG_SECURITY_SELINUX=y 的配置項

2. 在sepolicy中添加相應許可權

2.1 修改依據:
log 信息:
avc: denied { 操作許可權 } for pid=7201 comm=「進程名」 scontext=u:r:源類型:s0 tcontext=u:r:目標類型:s0 tclass=訪問類別 permissive=0

2.2 修改步驟:
找相應的「源類型.te 」文件

有兩個位置可能存在相應的te文件:

位置一:LINUX/android/external/sepolicy
位置二:LINUX/android/device/qcom/sepolicy/common

2.3 按如下格式在該文件中添加:

allow 源類型 目標類型:訪問類別 {許可權};

2.4 舉例
Kernel Log:
avc: denied { execheap } for pid=7201 comm="com..input" scontext=u:r:untrusted_app:s0tcontext=u:r:untrusted_app:s0tclass=processpermissive=0

修改:
在LINUX/android/external/sepolicy/untrusted_app.te 中添加:

[java] view plain
<span style="font-size:24px;color:#009900;">allow untrusted_app untrusted_app:process { execheap };</span>

備注:
在這個例子中,由於源類型和目標類型都是untreated_app, 所以也可以寫成:

[java] view plain
<span style="font-size:24px;color:#009900;">allow untrusted_app self:process { execheap };</span>

3. 添加許可權後的neverallowed沖突

3.1 編譯報錯:
libsepol.check_assertion_helper: neverallow on line xxx ofexternal/sepolicy/domain.te ……

3.2 原因:
新添加的sepolicy項目違反了domain.te 中規定的的總策略原則。所以該條許可權策略不能添加,如果強行添加的話有CTS測試失敗的風險。

3.3 解決方法:
1.從運行log中找到要訪問的目標名稱,一般是name欄位後的名稱
avc: denied { read write } for pid=303 comm="mediaserver"name="tfa9890"dev="tmpfs" ino=3880 scontext=u:r:mediaserver:s0tcontext=u:object_r:device:s0tclass=chr_file permissive=0

2.找到相應的*_contexts文件。

一般有file_contexts, genfs_contexts, property_contexts, service_contexts 等文件

3.在contexts文件中指定要訪問的目標為一個「源類型 」有許可權訪問的「目標類型」
如:在file_contexts中添加: /dev/tfa9890 u:object_r:audio_device:s0

3.4 舉例
添加許可權:
在mediaserver.te中添加allow mediaserver device:chr_file { read write open};

編譯報錯:
libsepol.check_assertion_helper: neverallow on line 258 ofexternal/sepolicy/domain.te (or line 5252 of policy.conf) violated byallow mediaserver device:chr_file { read write open};

違反了domain.te 258的:
neverallow {domain –unconfineddomain –ueventd } device:chr_file { open read write}

運行Log:
avc: denied { read write } for pid=303 comm="mediaserver"name="tfa9890" dev="tmpfs" ino=3880 scontext=u:r:mediaserver:s0 tcontext=u:object_r:device:s0tclass=chr_file permissive=0

修改步驟:

1.目標名稱是: tfa9890, 其在系統中的路徑是: /dev/tfa9890, 是audio相關的設備文件
2.源類型是mediaserver, 在mediaserver.te 文件中發現其具有 audio_device 目標類型的許可權
3.所以在file_contexts 中添加 「/dev/tfa9890 u:object_r:audio_device:s0」 可以解決問題

J. Android 中怎樣查找SELinux導致的許可權受限有關問題

在Android KK 4.4 版本後,Google 有正式有限制的啟用SELinux, 來增強android 的安全保護。
SELinux 分成enforcing mode 和 permissive mode, enforcing mode 會強制性限制訪問; 而permissve mode 只審查許可權, 但不限制, 即不會產生實質性影響.

KK 版本, Google 只有限制的啟用SELinux, 即只有針對netd, installd, zygote, vold 以及它們直接fork 出的child process 使用enforcing mode, 但不包括zygote fork的普通app.

L 版本, Google 全面開啟SELinux, 幾乎所有的process 都使enforcing mode, 影響面非常廣.

另外為了限制user 版本root 許可權,針對su 有做特別的處理,可以參考FAQ android KK 4.4 版本後,user 版本su 許可權嚴重被限制問題說明

目前所有的SELinux check 失敗,在kernel log 或者android log(L版本後)中都有對應的"avc: denied" 或者 "avc: denied"的LOG 與之對應。反過來,有此LOG,並非就會直接失敗,還需要確認當時SELinux 的模式, 是enforcing mode 還是 permissve mode.

如果問題容易復現,可以先將SELinux 模式調整到Permissive mode,然後再測試確認是否與SELinux 約束相關.

熱點內容
網易蘋果游戲怎麼轉移到安卓 發布:2024-11-15 00:07:52 瀏覽:270
win7php環境搭建 發布:2024-11-15 00:06:55 瀏覽:17
erpjava 發布:2024-11-14 23:52:23 瀏覽:253
電腦版地平線四怎麼連上伺服器 發布:2024-11-14 23:46:42 瀏覽:472
ios怎麼變安卓 發布:2024-11-14 23:46:36 瀏覽:333
win7共享xp列印機拒絕訪問 發布:2024-11-14 23:45:29 瀏覽:750
引起資源配置失效的原因有哪些 發布:2024-11-14 23:35:22 瀏覽:15
c語言打字 發布:2024-11-14 23:11:06 瀏覽:893
存儲程序和程序控制的原理 發布:2024-11-14 22:53:23 瀏覽:323
python讀取json數據 發布:2024-11-14 22:51:52 瀏覽:931