permissive=1 是什么意思
时间: 2024-03-27 20:41:51 浏览: 241
permissive=1 是指在 SELinux 系统中,将 SELinux 改为宽容模式(permissive mode)。在宽容模式下,SELinux 会记录下违反策略的访问请求,但是不会阻止这些请求的执行,而是只会发出警告信息。这样可以让用户在不破坏系统安全性的前提下,进行一些实验性的操作,以便更好地了解 SELinux 的工作方式和效果。
需要注意的是,开启宽容模式并不是一种安全的做法,因为它会降低系统的安全性。因此,只有在测试和调试 SELinux 策略时才应该使用宽容模式。在生产环境中,应该始终使用强制模式(enforcing mode)以确保系统的安全性。
相关问题
[ 62.097451] type=1400 audit(1686032696.903:62): avc: denied { map } for comm="network.sh" path="/system/bin/sh" dev="dm-7" ino=720 scontext=u:r:network_sh:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1 [ 62.097570] type=1400 audit(1686032696.903:62): avc: denied { read } for comm="network.sh" path="/system/bin/sh" dev="dm-7" ino=720 scontext=u:r:network_sh:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1 [ 62.097709] type=1400 audit(1686032696.903:62): avc: denied { execute } for comm="network.sh" path="/system/bin/sh" dev="dm-7" ino=720 scontext=u:r:network_sh:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1 [ 62.113304] type=1400 audit(1686032696.935:63): avc: denied { getattr } for comm="network.sh" path="/system/bin/sh" dev="dm-7" ino=720 scontext=u:r:network_sh:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1 [ 62.143732] type=1400 audit(1686032696.971:64): avc: denied { read } for comm="network.sh" name="ifconfig" dev="dm-7" ino=561 scontext=u:r:network_sh:s0 tcontext=u:object_r:init-ifconfig_exec:s0 tclass=lnk_file permissive=1 [ 62.150395] type=1400 audit(1686032696.971:64): avc: denied { getattr } for comm="network.sh" path="/system/bin/toybox" dev="dm-7" ino=766 scontext=u:r:network_sh:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1 [ 62.150484] type=1400 audit(1686032696.979:65): avc: denied { execute } for comm="network.sh" name="toybox" dev="dm-7" ino=766 scontext=u:r:network_sh:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1 [ 62.150537] type=1400 audit(1686032696.979:66): avc: denied { read open } for comm="network.sh" path="/system/bin/toybox" dev="dm-7" ino=766 scontext=u:r:network_sh:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1 [ 62.150676] type=1400 audit(1686032696.979:66): avc: denied { execute_no_trans } for comm="network.sh" path="/system/bin/toybox" dev="dm-7" ino=766 scontext=u:r:network_sh:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1 [ 62.151933] type=1400 audit(1686032696.979:66): avc: denied { map } for comm="ifconfig" path="/system/bin/toybox" dev="dm-7" ino=766 scontext=u:r:network_sh:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1 改写avc规则
AVC(Access Vector Cache)规则是安卓系统中的访问控制规则,用于限制应用程序访问敏感资源的能力。修改这些规则需要 root 权限和对 SELinux 的了解。
如果您想尝试修改这些规则,可以按照以下步骤操作:
1. 获取 root 权限,并安装 SELinux policy 工具。
2. 使用 `audit2allow` 工具将 AVC 规则转换为 SELinux policy 规则。例如,对于上面的日志,可以使用以下命令:
```
$ adb shell dmesg | grep -E 'type=1400 audit' | audit2allow -M network_sh
```
这将生成一个名为 `network_sh.pp` 的 SELinux policy 文件。
3. 将 `network_sh.pp` 文件推送到设备上。
```
$ adb push network_sh.pp /data/local/tmp/
```
4. 使用 `semodule` 工具将 SELinux policy 文件加载到系统中。
```
$ adb shell su -c "semodule -i /data/local/tmp/network_sh.pp"
```
这样就可以成功改写 AVC 规则。但是请注意,这可能会导致系统安全性问题,因此请谨慎操作。
type=1400 audit(22.153:82): avc: denied { read } for comm="Binder:435_3" name="hctosys" dev="sysfs" ino=27990 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
这是一个 AVC(Access Vector Cache)的日志,它描述了一个 SELinux 策略引擎拒绝了一个进程的读取权限。具体来说,这个进程是一个名为 "Binder:435_3" 的组件,正在尝试读取名为 "hctosys" 的文件。该文件位于 "sysfs" 文件系统中,其 Inode 号为 27990。该进程的安全上下文是 "u:r:system_server:s0",而文件的安全上下文是 "u:object_r:sysfs:s0"。最后一个字段表示 SELinux 在执行该策略时是否允许缺少权限的进程继续执行(在这种情况下,它是允许的)。如果你想更深入了解 SELinux 和 AVC,可以查看 Red Hat 的官方文档。
阅读全文