type=1400 audit(1683957580.803:50): avc: denied { read } for pid=1240 comm="m.example.jindi" name="ttyS0" dev="tmpfs" ino=11922 scontext=u:r:system_app:s0 tcontext=u:object_r:serial_device:s0 tclass=chr_file permissive=1
时间: 2024-03-29 10:34:59 浏览: 143
这看起来像一个 SELinux 安全审计日志,它指示了一个名为 `m.example.jindi` 的进程尝试读取一个名为 `ttyS0` 的设备文件,但被 SELinux 拒绝了。原因是该进程的安全上下文 `scontext` 是 `u:r:system_app:s0`,而设备文件的安全上下文 `tcontext` 是 `u:object_r:serial_device:s0`,两者不匹配。`tclass` 表示该设备文件的类型是字符设备文件。`permissive=1` 表示 SELinux 目前处于宽容模式,即允许这种行为的记录,但不会实际阻止该操作。
相关问题
[ 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 的官方文档。
阅读全文