selinux m4语言语法
m4宏定义
SELinux使用m4宏语言写可重用的策略规则。m4宏定义提供了易用的操作组合,它本身不属于SELinux策略语言的。m4宏语言的用法可查找m4宏语言用户手册http://cm.bell-labs.com/ 7thEdMan/vol2/m4。
下面列出Apache HTTP 宏定义文件$SELINUX_SRC/macros/program/apache_macros.te的前面一些内容:
define(`apache_domain', ` #定义宏apache_domain,后面从符号“`”到“’”是它的定义内容
undefine(`apache_single_user') #取消宏定义apache_single_user
ifdef(`single_userdomain', ` #如果定义了宏single_userdomain
ifelse($1, sys, `', ` #如果参数$1为sys,则返回空,否则定义宏apache_single_user
define(`apache_single_user')
')dnl end if # dnl表示它之后的字符为注释
')dnl end ifdef single_userdomain
ifdef(`apache_single_user', ` #如果定义了apache_single_user
typealias $1_home_t alias httpd_$1_content_t; #定义类型别名
typealias $1_home_t alias httpd_$1_htaccess_t;
typealias $1_home_t alias httpd_$1_script_exec_t;
typealias $1_home_t alias httpd_$1_script_ro_t;
typealias $1_home_t alias httpd_$1_script_rw_t;
typealias $1_home_t alias httpd_$1_script_ra_t;
file_type_auto_trans(httpd_$1_script_t, tmp_t, $1_tmp_t) #调用类型转换宏
', `
#这是网页的类型
type httpd_$1_content_t, file_type, homedirfile, sysadmfile;
ifelse($1, sys, ` #如果参数$1为sys,则进行类型别名定义
typealias httpd_sys_content_t alias httpd_sysadm_content_t;
')
...... #省略了其他规则的定义
')
宏定义apache_domain的使用方法如下:
apache_domain(sys)
宏定义apache_domain调用时,其内容中的$1将用sys替换,例如:
type httpd_$1_htaccess_t, file_type, sysadmfile;
上面一行语句将变为下面一行语句:
type httpd_sys_htaccess_t, file_type, sysadmfile;
selinux m4语言语法相关推荐
- SELinux策略语言--客体类别和许可
1. 简介 SELinux策略语言主要描述policy.conf的相关语法,其相关部分如下图所示: 2. 客体类别 定义内核支持的客体类别和许可的策略语言指令,并对SELinux系统中内核客体类别标准 ...
- SELinux策略语言--类型强制(编写TE规则)
1. 简介 SELinux策略语言主要描述policy.conf的相关语法,其相关部分如下图所示: 2. 类型强制概念 SELinux策略大部分内容都是由多条类型强制规则构成的,这些规则控制被允许的使 ...
- JScript多语言语法加亮引擎显示(代码精简)
上一篇文章<JScript中正则表达式用法详解>中讲解了JScript中怎样使用正则表达式,这篇文章就给出一个实际应用的例子.昨晚我一边研究JScript中正则表达式的使用就一边在做JSc ...
- Neo4j-Cypher语言语法
为什么80%的码农都做不了架构师?>>> Neo4j-Cypher语言语法 本文是记录Neo4j图数据库中实用的Cypher语言语法. Cypher是什么 "Cyph ...
- 下列符合c语言语法的字符常量是,C语言程序设计(周经亚)选择题练习-chapter 5.doc...
选择题练习一 下叙述中正确的是 [1] . A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发 ...
- java语言语法--- Java标识符(标识符命名规则)、Java关键字、Java变量(变量的声明、赋值、使用)和常量(字符常量、字面常量)(包括Java字节码文件反汇编命令javap)
java语言语法- Java标识符.Java关键字.Java变量和常量(包括Java字节码文件反汇编命令javap) 1.标识符 (1)读音:biao zhi fu (2)什么是标识符? (摘自百度百 ...
- c语言语法格式规范(1)常量的非法与合法
c语言语法格式规范(1)常量的非法与合法 首先确定常量的类型 整型 确定进制,查看各位数的范围是否超界. 8进制常量以前导 0 开始,每位数只能到7 例如:05188 非法 16进制常量以 0x 开始 ...
- c语言中建一个文件的语法,C语言语法介绍_文件.ppt
C语言语法介绍_文件 第十三章 本章要点 文件的基本概念 文件的基本函数 文件的顺序读写 文件的随机读写 文件简单应用 主要内容 13.1 C文件概述 13.2 文件类型指针 13.3 文件的打开与关 ...
- JScript多语言语法加亮引擎改进(修正多行注释识别)
原先多行注释识别的正则/\*.*?\*/不能正常识别,现在修正为:/\*[.\b\w\W]*\*/ 呵呵,简直乱写,反正可以用了就是. 其次行识别现在还没有真正起作用 ...
最新文章
- js中显示一个指定html文档,JS实现选定指定HTML元素对象中指定文本内容功能示例...
- MySQL导数据工具对比
- c3p0数据源配置抛出Could not load driverClass com.mysql.jdbc.Driver的解决方案
- Android 开源项目集合
- Excel2003Training(1)-浅谈Excel的5个小技巧
- linux 读取飞信信息,Linux下飞信
- swap(a,b)值交换的4种方法
- Xcode怎样调整模拟器大小
- PostgreSQL的安装和启动方法大全
- 敏捷开发生态系统系列之一:序言及需求管理生态(客户价值导向-可工作软件-响应变化)...
- java集合类习题_Java集合练习
- 新买的电脑,为什么浏览器(谷歌)很卡,卡到爆,浏览器很卡怎么解决?
- python中相对路径怎么写,python相对路径写法
- 三极管共射放大电路的放大倍数怎么设计?
- 最小公倍数求法 (3种代码思路供参考 ) --(C语言实现)-- 详解
- 理解复数域上的向量空间
- ROS学习之路的整理
- HC-SR501人体红外感应模块程序
- 快速提升网站排名的方法
- android选择相册图片并显示
热门文章
- GreenPlum 数据库启动关闭及数据库状态检查
- 数组里面都是人的名字,分割成:例如:老杨|老苏|老邹…”(老杨,老苏,老邹,老虎,老牛,老蒋,老王,老马)
- 家族关系查询系统程序设计算法思路_数据结构课程设计(家族关系查询系统)
- python鱼眼图像识别_图像变换之矫正---鱼眼图像的矫正简介
- BIM模型一键输出 3D Tiles (for Cesium) 和 glTF/blg
- 海奥华预言--第七章 慕大陆和远东岛
- RabbitMQ Server简介和安装教程
- 手机游戏毕业设计论文
- 【数据分析学习笔记day09】数据分析实战案例:2016美国大选民意调查统计+2016年美国总统大选民意调查数据统计+示例代码1 +示例代码2:
- 什么是 NFT Gala Games? 元宇宙 Town Star 新手村攻略教程