This is a demo for selinux. 具体操作步骤请参考 社区版开启SELinux方法.txt
selinux 文件夹是自定义的selinux策略文件,.pp是使用执行make之后生成的策略模块,加载策略模块的命令如下:
semodule是用于管理SELinux策略模块的工具,包括安装,升级,列出和删除模块。 semodule还可用于强制从模块存储重建策略和/或强制重新加载策略而不执行任何其他事务。 semodule作用于semodule_package创建的模块包。通常,这些文件具有.pp后缀(策略包),尽管这不是以任何方式强制执行的。
安装策略模块
sudo semodule -i selinux_demo_test.pp.bz2
卸载策略模块
sudo semodule -r selinux_demo_test.pp.bz2
cd build
cmake ..
make -j4
uos@uos:/Desktop/selinux_demo_test/build$ getenforce
Permissive
uos@uos:/Desktop/selinux_demo_test/build$ ls -Z /home/uos/test
user_u:object_r:user_home_t:s0 /home/uos/test
uos@uos:/Desktop/selinux_demo_test/build$ ls -Z
user_u:object_r:user_home_t:s0 CMakeCache.txt user_u:object_r:user_home_t:s0 Makefile
user_u:object_r:user_home_t:s0 CMakeFiles user_u:object_r:user_home_t:s0 selinux_demo_test
user_u:object_r:user_home_t:s0 cmake_install.cmake
uos@uos:/Desktop/selinux_demo_test/build$ ./selinux_demo_test
开始读取/home/uos/test文件
读取结果为: hello, this is a selinux demo test.
uos@uos:/Desktop/selinux_demo_test/build$ sudo chcon -t myapp_exec_t selinux_demo_test
uos@uos:/Desktop/selinux_demo_test/build$ ls -Z
user_u:object_r:user_home_t:s0 CMakeCache.txt user_u:object_r:user_home_t:s0 Makefile
user_u:object_r:user_home_t:s0 CMakeFiles user_u:object_r:myapp_exec_t:s0 selinux_demo_test
user_u:object_r:user_home_t:s0 cmake_install.cmake
uos@uos:/Desktop/selinux_demo_test/build$ ./selinux_demo_test
开始读取/home/uos/test文件
读取结果为: hello, this is a selinux demo test.
uos@uos:/Desktop/selinux_demo_test/build$ sudo setenforce 1
uos@uos:/Desktop/selinux_demo_test/build$ getenforce
Enforcing
uos@uos:/Desktop/selinux_demo_test/build$ ./selinux_demo_test
开始读取/home/uos/test文件
读取错误: Permission denied
make clean
http://oss.tresys.com/docs/refpolicy/api/kernel_domain.html
https://blog.csdn.net/cheng_fangang/article/details/38677105