如何永久关闭实体框架5.0和6.0区别的SELinux

博客访问: 1159991
博文数量: 472
博客积分: 918
博客等级: 准尉
技术积分: 3197
注册时间:
认证徽章:
你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
vi /etc/selinux/config
&#SELINUX=enforcing&&&& #注释掉
&#SELINUXTYPE=targeted& #注释掉
&SELINUX=disabled& #增加
:wq& #保存,关闭。
shutdown -r now&& #重启系统
查看SELinux的状态:getenforce
临时关闭:setenforce 0
开启:setenforce 1
阅读(480) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。转自:&/article/55398.html
Android5 中,安全机制增强后, 自己写的 操作 串口 的APP 想正确运行, 都需要经过一番折腾.
我从&svn checkout http://android-serialport-/svn/trunk/ android-serialport-api-read-only 这里下了个老牌的串口测试程序, 编译到 API 21 版本, 成功生成 APK 文件, 在开发板上运行,&
会出现下面的错误(在android5 以前的版本是可以正常运行的)
[ ] type=1400 audit(.801:4): avc: denied { read } for pid=2147 comm=&port_api.sample& name=&/& dev=&tmpfs& ino=3074 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0
[ ] type=1400 audit(.601:5): avc: denied { read } for pid=2172 comm=&port_api.sample& name=&/& dev=&tmpfs& ino=3074 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0
[ ] type=1400 audit(.941:6): avc: denied { read } for pid=9184 comm=&port_api.sample& name=&/& dev=&tmpfs& ino=3074 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0
[ ] type=1400 audit(.121:7): avc: denied { read } for pid=9815 comm=&port_api.sample& name=&/& dev=&tmpfs& ino=3074 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0
[ ] type=1400 audit(.301:8): avc: denied { read } for pid=9971 comm=&port_api.sample& name=&/& dev=&tmpfs& ino=3074 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0
google搜索了一下, 是因为SE安全机制, 需要grant合适的权限.
grant权限, 必须先知道自己的APP运行在哪种进程类型.
想知道自己的 进程(APP)属于什么 *.te 吗?
用 ps -Z 查看:
root@sabresd_6dq:/ # ps -Z
LABEL & & & & & & & & & & & & &USER & & PID & PPID &NAME
u:r:init:s0 & & & & & & & & & &root & & &1 & & 0 & & /init
u:r:kernel:s0 & & & & & & & & &root & & &2 & & 0 & & kthreadd
u:r:kernel:s0 & & & & & & & & &root & & &3 & & 2 & & ksoftirqd/0
u:r:kernel:s0 & & & & & & & & &root & & &5 & & 2 & & kworker/0:0H
u:r:kernel:s0 & & & & & & & & &root & & &7 & & 2 & & migration/0
u:r:kernel:s0 & & & & & & & & &root & & &8 & & 2 & & rcu_preempt
u:r:kernel:s0 & & & & & & & & &root & & &9 & & 2 & & rcu_bh
u:r:kernel:s0 & & & & & & & & &root & & &10 & &2 & & rcu_sched
u:r:kernel:s0 & & & & & & & & &root & & &11 & &2 & & migration/1
u:r:kernel:s0 & & & & & & & & &root & & &12 & &2 & & ksoftirqd/1
u:r:kernel:s0 & & & & & & & & &root & & &13 & &2 & & kworker/1:0
u:r:kernel:s0 & & & & & & & & &root & & &14 & &2 & & kworker/1:0H
u:r:kernel:s0 & & & & & & & & &root & & &15 & &2 & & migration/2
u:r:kernel:s0 & & & & & & & & &root & & &16 & &2 & & ksoftirqd/2
u:r:kernel:s0 & & & & & & & & &root & & &17 & &2 & & kworker/2:0
u:r:kernel:s0 & & & & & & & & &root & & &18 & &2 & & kworker/2:0H
u:r:kernel:s0 & & & & & & & & &root & & &19 & &2 & & migration/3
u:r:kernel:s0 & & & & & & & & &root & & &20 & &2 & & ksoftirqd/3
u:r:kernel:s0 & & & & & & & & &root & & &21 & &2 & & kworker/3:0
u:r:kernel:s0 & & & & & & & & &root & & &22 & &2 & & kworker/3:0H
u:r:kernel:s0 & & & & & & & & &root & & &23 & &2 & & khelper
u:r:kernel:s0 & & & & & & & & &root & & &24 & &2 & & kdevtmpfs
u:r:kernel:s0 & & & & & & & & &root & & &25 & &2 & & suspend_sys_syn
u:r:kernel:s0 & & & & & & & & &root & & &26 & &2 & & suspend
u:r:kernel:s0 & & & & & & & & &root & & &28 & &2 & & kworker/1:1
u:r:kernel:s0 & & & & & & & & &root & & &30 & &2 & & kworker/3:1
u:r:kernel:s0 & & & & & & & & &root & & &31 & &2 & & writeback
u:r:kernel:s0 & & & & & & & & &root & & &32 & &2 & & bioset
u:r:kernel:s0 & & & & & & & & &root & & &33 & &2 & & crypto
u:r:kernel:s0 & & & & & & & & &root & & &34 & &2 & & kblockd
u:r:kernel:s0 & & & & & & & & &root & & &35 & &2 & & khubd
u:r:kernel:s0 & & & & & & & & &root & & &41 & &2 & & ipu1_task
u:r:kernel:s0 & & & & & & & & &root & & &42 & &2 & & ipu1_task
u:r:kernel:s0 & & & & & & & & &root & & &43 & &2 & & ipu2_task
u:r:kernel:s0 & & & & & & & & &root & & &44 & &2 & & ipu2_task
u:r:kernel:s0 & & & & & & & & &root & & &45 & &2 & & rpciod
u:r:kernel:s0 & & & & & & & & &root & & &46 & &2 & & kswapd0
u:r:kernel:s0 & & & & & & & & &root & & &47 & &2 & & ksmd
u:r:kernel:s0 & & & & & & & & &root & & &48 & &2 & & fsnotify_mark
u:r:kernel:s0 & & & & & & & & &root & & &49 & &2 & & nfsiod
u:r:kernel:s0 & & & & & & & & &root & & &86 & &2 & & kworker/0:3
u:r:kernel:s0 & & & & & & & & &root & & &87 & &2 & & spi32766
u:r:kernel:s0 & & & & & & & & &root & & &90 & &2 & & ci_otg
u:r:kernel:s0 & & & & & & & & &root & & &91 & &2 & & dm_bufio_cache
u:r:kernel:s0 & & & & & & & & &root & & &92 & &2 & & cfinteractive
u:r:kernel:s0 & & & & & & & & &root & & &93 & &2 & & irq/352-2198000
u:r:kernel:s0 & & & & & & & & &root & & &94 & &2 & & galcore workque
u:r:kernel:s0 & & & & & & & & &root & & &95 & &2 & & Vivante Kernel&
u:r:kernel:s0 & & & & & & & & &root & & &96 & &2 & & mmcqd/1
u:r:kernel:s0 & & & & & & & & &root & & &97 & &2 & & galcore daemon&
u:r:kernel:s0 & & & & & & & & &root & & &98 & &2 & & galcore daemon&
u:r:kernel:s0 & & & & & & & & &root & & &99 & &2 & & galcore daemon&
u:r:kernel:s0 & & & & & & & & &root & & &100 & 2 & & vpu_wq
u:r:kernel:s0 & & & & & & & & &root & & &101 & 2 & & binder
u:r:kernel:s0 & & & & & & & & &root & & &102 & 2 & & krfcommd
u:r:kernel:s0 & & & & & & & & &root & & &103 & 2 & & deferwq
u:r:kernel:s0 & & & & & & & & &root & & &104 & 2 & & f_mtp
u:r:kernel:s0 & & & & & & & & &root & & &105 & 2 & & file-storage
u:r:ueventd:s0 & & & & & & & & root & & &106 & 1 & & /sbin/ueventd
u:r:watchdogd:s0 & & & & & & & root & & &107 & 1 & & /sbin/watchdogd
u:r:kernel:s0 & & & & & & & & &root & & &109 & 2 & & kworker/0:1H
u:r:kernel:s0 & & & & & & & & &root & & &110 & 2 & & jbd2/mmcblk1p5-
u:r:kernel:s0 & & & & & & & & &root & & &111 & 2 & & ext4-dio-unwrit
u:r:kernel:s0 & & & & & & & & &root & & &112 & 2 & & jbd2/mmcblk1p4-
u:r:kernel:s0 & & & & & & & & &root & & &113 & 2 & & ext4-dio-unwrit
u:r:kernel:s0 & & & & & & & & &root & & &114 & 2 & & jbd2/mmcblk1p6-
u:r:kernel:s0 & & & & & & & & &root & & &115 & 2 & & ext4-dio-unwrit
u:r:kernel:s0 & & & & & & & & &root & & &116 & 2 & & jbd2/mmcblk1p7-
u:r:kernel:s0 & & & & & & & & &root & & &117 & 2 & & ext4-dio-unwrit
u:r:logd:s0 & & & & & & & & & &logd & & &118 & 1 & & /system/bin/logd
u:r:healthd:s0 & & & & & & & & root & & &119 & 1 & & /sbin/healthd
u:r:lmkd:s0 & & & & & & & & & &root & & &120 & 1 & & /system/bin/lmkd
u:r:servicemanager:s0 & & & & &system & &121 & 1 & & /system/bin/servicemanager
u:r:vold:s0 & & & & & & & & & &root & & &122 & 1 & & /system/bin/vold
u:r:surfaceflinger:s0 & & & & &system & &123 & 1 & & /system/bin/surfaceflinger
u:r:init_:s0 & & & & & & &root & & &124 & 1 & & /system/bin/sh
u:r:netd:s0 & & & & & & & & & &root & & &125 & 1 & & /system/bin/netd
u:r:debuggerd:s0 & & & & & & & root & & &126 & 1 & & /system/bin/debuggerd
u:r:drmserver:s0 & & & & & & & drm & & & 127 & 1 & & /system/bin/drmserver
u:r:mediaserver:s0 & & & & & & media & & 128 & 1 & & /system/bin/mediaserver
u:r:installd:s0 & & & & & & & &install & 129 & 1 & & /system/bin/installd
u:r:keystore:s0 & & & & & & & &keystore &130 & 1 & & /system/bin/keystore
u:r:rild:s0 & & & & & & & & & &root & & &131 & 1 & & /system/bin/rild
u:r:zygote:s0 & & & & & & & & &root & & &132 & 1 & & zygote
u:r:sdcardd:s0 & & & & & & & & media_rw &134 & 1 & & /system/bin/sdcard
u:r:su:s0 & & & & & & & & & & &root & & &136 & 1 & & /sbin/adbd
u:r:kernel:s0 & & & & & & & & &root & & &151 & 2 & & kauditd
u:r:kernel:s0 & & & & & & & & &root & & &152 & 2 & & kworker/2:1H
u:r:kernel:s0 & & & & & & & & &root & & &157 & 2 & & kworker/3:1H
u:r:kernel:s0 & & & & & & & & &root & & &160 & 2 & & kworker/1:1H
u:r:system_server:s0 & & & & & system & &411 & 132 & system_server
u:r:platform_app:s0 & & & & & &u0_a14 & &497 & 132 & com.android.systemui
u:r:kernel:s0 & & & & & & & & &root & & &512 & 2 & & cfg80211
u:r:untrusted_app:s0 & & & & & u0_a5 & & 518 & 132 & android.process.media
u:r:wpa:s0 & & & & & & & & & & wifi & & &581 & 1 & & /system/bin/rtl_wpa_supplicant
u:r:untrusted_app:s0 & & & & & u0_a34 & &620 & 132 & com.android.inputmethod.latin
u:r:radio:s0 & & & & & & & & & radio & & 714 & 132 & com.android.server.telecom
u:r:radio:s0 & & & & & & & & & radio & & 734 & 132 & com.android.phone
u:r:untrusted_app:s0 & & & & & u0_a7 & & 775 & 132 & com.android.launcher
u:r:kernel:s0 & & & & & & & & &root & & &813 & 2 & & RTW_CMD_THREAD
u:r:untrusted_app:s0 & & & & & u0_a2 & & 830 & 132 & android.process.acore
u:r:untrusted_app:s0 & & & & & u0_a27 & &873 & 132 & com.android.deskclock
u:r:system_app:s0 & & & & & & &system & & & com.android.settings
u:r:untrusted_app:s0 & & & & & u0_a10 & & & com.android.musicfx
u:r:bluetooth:s0 & & & & & & & bluetooth
& com.android.bluetooth
u:r:dhcp:s0 & & & & & & & & & &dhcp & & &1584 &1 & & /system/bin/dhcpcd
u:r:untrusted_app:s0 & & & & & u0_a20 & & & com.android.browser
u:r:kernel:s0 & & & & & & & & &root & & &1967 &2 & & kworker/u8:1
u:r:platform_app:s0 & & & & & &u0_a39 & & & com.android.packageinstaller
u:r:platform_app:s0 & & & & & &u0_a29 & & & com.android.documentsui
u:r:platform_app:s0 & & & & & &u0_a3 & &
& com.android.defcontainer
u:r:untrusted_app:s0 & & & & & u0_a32 & & & com.android.gallery3d
u:r:untrusted_app:s0 & & & & & u0_a40 & & & com.svox.pico
u:r:system_app:s0 & & & & & & &system & & & com.android.keychain
u:r:untrusted_app:s0 & & & & & u0_a49 & & & android_serialport_api.sample
u:r:kernel:s0 & & & & & & & & &root & & &10994 2 & & kworker/0:1
u:r:su:s0 & & & & & & & & & & &root & & & & /system/bin/sh
u:r:su:s0 & & & & & & & & & & &root & & & & logcat
u:r:kernel:s0 & & & & & & & & &root & & &17033 2 & & kworker/u8:0
u:r:untrusted_app:s0 & & & & & u0_a37 & & & com.android.music
u:r:kernel:s0 & & & & & & & & &root & & &19474 2 & & kworker/2:2
u:r:su:s0 & & & & & & & & & & &root & & & ps
root@sabresd_6dq:/ #&
我的&&android_serialport_api.sample 进程安全策由&untrusted_app 这个组配置, 即是 需要修改 &untrusted_app.te 文件. 可参见&http://blog.csdn.net/tung214/article/details/ 这篇文件
只是我修改的 &&untrusted_app.te 文件的位置不同, 我的是freescale开发板, 我修改的是 &(android_root_file)/device/fsl/imx6/sepolicy/untrusted_app.te
&span courier=&& new',courier,mono,=&& line-height:18=&& orphans:2;=&& widows:2&=&& style=&box-sizing: border-&&allow untrusted_app&tty_device:chr_file&rw_file_perms
///////////////////////////
用 ls -Z 查看object的所属 domain,
ps -Z 查看进行 所属 domain
id -Z 查看当前用户信息
调试 SELinux 的权限设置, 需要学会看懂 log 中的信息
======================================================================================================
======================================================================================================
如果要让系统添加新的硬件支持, 比如添加一个4G模块, 这需要修改kernel和android framework层.
4G 模块驱动正确添加之后, 一般会生成 一个 网络接口 例如: eth0, &一个/dev 下的设备节点, &和 /dev 下 几个 ttyUSB* & 虚拟串口....
在android 5 中使用这些节点, 需要做些审核策略设置.
查看设备节点的信息:
root@sabresd_6qd:/dev # ls -Z
crw------- root & & root & & & & & & &u:object_r:device:s0 mxs_viim
crw------- root & & root & & & & & & &u:object_r:device:s0 network_latency
crw------- root & & root & & & & & & &u:object_r:device:s0 network_throughput
crw-rw-rw- root & & root & & & & & & &u:object_r:null_device:s0 null
crw-rw---- radio & &vpn & & & & & & & u:object_r:ppp_device:s0 ppp
crw-rw-rw- root & & root & & & & & & &u:object_r:ptmx_device:s0 ptmx
drwxr-xr-x root & & root & & & & & & &u:object_r:devpts:s0 pts
crw------- root & & root & & & & & & &u:object_r:device:s0 qcqmi0
crw-rw-rw- root & & root & & & & & & &u:object_r:random_device:s0 random
crw------- root & & root & & & & & & &u:object_r:device:s0 rfkill
crw-r----- system & system & & & & & &u:object_r:device:s0 rtc0
crw-rw---- bluetooth net_bt_stack & & & & &u:object_r:hci_attach_dev:s0 rtk_btusb
drwxr-xr-x root & & root & & & & & & &u:object_r:audio_device:s0 snd
drwxr-xr-x root & & root & & & & & & &u:object_r:socket_device:s0 socket
crw------- root & & root & & & & & & &u:object_r:device:s0 sw_sync
crw-rw-rw- root & & root & & & & & & &u:object_r:owntty_device:s0 tty
上面列表中, 设备节点归属哪个用户组, 哪个用户, &是在 一个 名称为 &ueventd.freescale.rc 这个文件中定义的(每个platform 不同 , 名称也可能不同),
rtk_btusb 这个节点, 上面显示 属于 bluetooth 组, net_bt_stack 用户 所有, 参见下表, 正好与下表中定义吻合
#/dev/ttymxc4
/dev/snd/*
/dev/ttyUSB*
/dev/ttyACM*
/dev/video*
/dev/video0
/dev/video1
/dev/video2
/dev/video16
/dev/mxc_ipu
/dev/mxc_vpu
/dev/uinput
#/dev/ttymxc2
/dev/ttya0
/dev/ptya0
/dev/ttya1
/dev/ptya1
/dev/galcore
/dev/graphics/fb0
/dev/watchdog
/dev/mma8x5x
/dev/caam_kb
/dev/rtk_btusb
net_bt_stack
设备节点所属的 domain (域) &, 就由一个 名称为 file_contexts 的文件定义的&
在我的&file_contexts 中有一行关于&
/dev/rtk_btusb&u:object_r:hci_attach_dev:s0
这句话定义 rtk_btusb 这个设备节点属于 hci_attahc_dev 这个域中了
如果新的设备节点没有在 file_contexts 中定义, 那么默认属于 &root 组 , root 所有
下面是定义 某个应用程序 能够使用某个节点 &, 在rild.te中, &最后一行, 定义 rild 这个程序能够使用 tty_device 域中的节点,&
allow rild net_radio_prop:property_service {set};
allow rild ctl_default_prop:property_service {set};
allow rild tty_device:chr_file rw_file_
以下转自:&
http://blog.csdn.net/kc/article/details/
在recover升级的时候,我们有个需要从服务器上下载升级包,然后放在data/download,这部分工作是放在一个systemapp中完成的。
然后重启进入recoveyr模式,在recovery升级完之后,我们需要在recovery中删除这个文件,这部分是在recovery中完成。
功能很简单,但是在android6.0上碰到selinux的问题。
我们先来看recovery.te中是不允许recovery操作data下面的目录,也就是下面这个neverallow原则
我们再来看下system_data_file在file_contexts.te中的定义
而在file.te定义了system_data_file文件属于data_file_type类型,因此recovery也是不能操作data下面的文件
在我们可以自己定义自己的file类型,我们可以定义data/download属于download_data_file类型
然后在file.te中定义download_data_file类型, 注意是只属于file_type类型的。
然后在recovery.te中增加对download_data_file的权限
另外我们还需在一个systemapp中先下载升级包,所以需要在system_app.te中增加对如下权限:
但是最后还是失败了,为什么呢,因为一开始没有data/download这个目录,而是我们再app中自己下载的时候创建的目录,所以是system_data_file类型的。那么我们就需要在一开始就有data/download目录,所以在init.rc中添加如下代码:
最后我们还需要在uncrypt.te中增加如下,因为data目录有可能需要进行加密处理。
最后这个问题就解决了。
allow rild net_radio_prop:property_service {set};
allow rild ctl_default_prop:property_service {set};
allow rild tty_device:chr_file rw_file_
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:186447次
积分:2214
积分:2214
排名:第16676名
原创:36篇
转载:70篇
评论:41条
(1)(1)(2)(2)(2)(1)(2)(1)(1)(1)(1)(4)(5)(1)(5)(1)(1)(3)(2)(2)(2)(1)(2)(4)(3)(2)(5)(5)(3)(1)(8)(5)(10)(7)(1)(3)(1)(1)(1)(2)4051人阅读
android selinux(7)
我们举个案例,比如recovery升级中,碰到这个的log
01-01&08:03:22.410000&&&217&&&217&W&applypatch:&type=1400&audit(0.0:16):&avc:&denied&{&read&}&for&name=&mmcblk0p15&&dev=&tmpfs&&ino=3364&scontext=u:r:install_recovery:s0&tcontext=u:object_r:block_device:s0&tclass=blk_file&permissive=0&&
说明install_revovery没有block_device的权限。
而在原生的domain.te文件中,明确domain中是没有对block_device的读写权限,除了recovery vold等。
neverallow&{&domain&-kernel&-init&-recovery&-vold&-uncrypt&-emsd&-rild&-radio_config}&block_device:blk_file&{&open&read&write&};&&
二、方法1(后续cts测试会有问题)
那我们如何是好呢,可以在上面这句nevera中把install_recovery也减去,然后再install_recovery.te中再加入相应的allow,这个时候编译就不会报错了。
但是这个方法,后续会在cts的时候过不了。
因此我们不能采取这种方法。
所以我们得想别的方法,我们发现在domain.te中同样有下面这么一句,是可以允许install_recovery去写recover_block_device的权限。
./domain.te:354:neverallow&{&domain&-install_recovery&-recovery&}&recovery_block_device:blk_file&&&
于是我们再去查block_device 和 recover_block_device
type&recovery_block_device,&dev_&&
type&block_device,&dev_&&
这两个的类型一致。
但我们再看file_contexts,看下文件安全上下文
/dev/block(/.*)?&&&&u:object_r:block_device:s0&&
定义的dev/block下面的文件都是block_device,而recover_block_device是没有定义的。那我们也能不能定义我们要操作的文件为recover_block_device类型。
答案肯定是可以的。
/dev/block(/.*)?&&&&u:object_r:block_device:s0&&/dev/block/dm-[0-9]+&&&&u:object_r:dm_device:s0&&/dev/block/loop[0-9]*&&&u:object_r:loop_device:s0&&/dev/block/vold/.+&&u:object_r:vold_device:s0&&/dev/block/ram[0-9]*&&&&u:object_r:ram_device:s0&&
我们也可以自己定义自己的文件为recover_block_device类型,感觉这是给大家预留的。
具体实现就不说了,因为具体要操作什么文件不是太清楚,这只是一个log而已。
最后我们只要在install_recovery.te中加入下面权限就可以了。
allow&install_recovery&recover_block_device:blk_file&{&open&read&write&};&&
这样install_recovery就有了目标文件的open read write权限了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2556764次
积分:23240
积分:23240
排名:第277名
原创:52篇
转载:754篇
评论:281条
(4)(6)(1)(1)(4)(9)(1)(4)(7)(2)(1)(5)(5)(7)(8)(7)(3)(5)(11)(4)(5)(9)(6)(4)(8)(8)(10)(13)(10)(21)(24)(6)(4)(29)(19)(12)(24)(12)(4)(6)(5)(16)(27)(23)(17)(5)(15)(23)(50)(6)(5)(19)(11)(9)(2)(13)(15)(19)(1)(2)(2)(11)(8)(2)(14)(1)(9)(6)(8)(2)(2)(29)(41)(24)(36)

我要回帖

更多关于 安卓5.0和6.0区别 的文章

 

随机推荐