Я пытаюсь написать 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 в моем случае?