我正在尝试为自定义服务编写SEpolicy,该策略在/ dev / test_sock /文件夹下创建套接字。
开始时它会创建十个套接字
/dev/test_sock/sock1
/dev/test_sock/sock2
/dev/test_sock/sock3
...
/dev/test_sock/sock10
我需要为每个套接字使用不同的文件上下文 作为示例,我检查了AOSP的工作原理,例如在块设备上
/dev(/.*)? u:object_r:device:s0
/dev/block(/.*)? u:object_r:block_device:s0
/dev/block/loop[0-9]* u:object_r:loop_device:s0
/dev/block/ram[0-9]* u:object_r:ram_device:s0
我检查了实际的设备上下文,看起来不错
30|console:/ # ls -alZ /dev/block/
total 0
drwxr-xr-x 5 root root u:object_r:block_device:s0 640 1970-01-01 00:00 .
drwxr-xr-x 18 root root u:object_r:device:s0 3600 1970-01-01 00:00 ..
brw------- 1 root root u:object_r:loop_device:s0 7, 0 1970-01-01 00:00 loop0
brw------- 1 root root u:object_r:userdata_block_device:s0 179, 0 1970-01-01 00:00 mmcblk0
bdrwx------ 2 root reserved_disk u:object_r:block_device:s0 40 1970-01-01 00:00 vold
因此,我尝试以相同的方式进行自己的服务。我创建了具有内容的file_contexts:
/dev/test_sock(/.*)? u:object_r:test_sock_device:s0
/dev/test_sock/sock1 u:object_r:test_sock_device1:s0
/dev/test_sock/sock[2-4] u:object_r:test_sock_device_other:s0
已将正确的文件上下文应用于/ dev / test_sock /文件夹,但是此文件夹内的套接字具有相同的文件上下文。根据我的理解,sock1的上下文应该为test_sock_device1,sock [1-4]的上下文应该为test_sock_device_other
130|console:/ # ls -alZ /dev/test_sock/
total 0
drwxr-xr-x 2 root root u:object_r:test_sock_device:s0 280 1970-01-01 00:00 .
drwxr-xr-x 18 root root u:object_r:device:s0 3600 1970-01-01 00:00 ..
srw-rw---- 1 root root u:object_r:test_sock_device:s0 0 1970-01-01 00:00 sock1
srw-rw---- 1 root root u:object_r:test_sock_device:s0 0 1970-01-01 00:00 sock2
srw-rw---- 1 root root u:object_r:test_sock_device:s0 0 1970-01-01 00:00 sock3
在我的情况下,如何通过使用file_contexts来纠正设置的上下文?