用sql2000做网站建设银行手机银行网站用户名

pingmian/2025/10/11 1:22:40/文章来源:
用sql2000做网站,建设银行手机银行网站用户名,怎么打开网站,自适应网站一般做多大尺寸SELinux 安全模型——TE 首发公号#xff1a;Rand_cs 通过前面的示例策略#xff0c;大家对 SELinux 应该有那么点感觉认识了#xff0c;从这篇开始的三篇文章讲述 SELinux 的三种安全模型#xff0c;会涉及一些代码#xff0c;旨在叙述 SELinux 内部的原理 SELinux 提供…SELinux 安全模型——TE 首发公号Rand_cs 通过前面的示例策略大家对 SELinux 应该有那么点感觉认识了从这篇开始的三篇文章讲述 SELinux 的三种安全模型会涉及一些代码旨在叙述 SELinux 内部的原理 SELinux 提供了 3 种安全模型 RBACRole Based Access Control基于角色的权限访问控制它根据用户的角色和职责来管理对系统资源的访问权限。RBAC 将用户分配到不同的角色中每个角色被赋予一组特定的权限用户通过被分配到相应的角色来获得相应的权限从而实现对系统资源的安全访问和管理。 TEType EnforcementSELinux 最主要的安全模型每一个主体客体都被分配一个类型且使用白名单策略决定指定类型之间的访问权限。 MLSMulti-Level Security用于保护敏感和机密信息。这是 SELinux 对 BLP(Bell-La Padula Model) 模型的实现编写策略可实现 “no read up, no write down” 本篇文章讲述 SELinux 最重要的安全模型TEType Enforcement针对类型的一种强制访问控制模式。 两种规则及其数据结构 它是 SELinux 的基石百分之九十九的规则都是建立在 TE 之上的。TE 这种安全模型主要有两种规则在之前示例策略种也说过本文再来复习一遍 Access Vector Rules简单理解为 allow、neverallow、dontaudit 这些规则属于 AV 规则。其语法为 allow source target : class { perms }表示 source 对 class 类别的 target 的访问权限。Type Rules这类规则涉及类型转换总共有 3 个type_transition、type_change、type_member后两个先不用管重点知道 type_transion 就行。其语法规则为 allow a_t b_exec_t : process b_t表示 a_t 这个类型的进程执行 b_exec_t 这个类型的可执行程序后类型转换为 b_t。 虽然 TE 分为两大类规则但是从形式上来讲它们是统一的都是 规则名 源类型 目标类型 目标类别 权限/转换后类型可以看出只有最后一部分是不一样的。但终归形式统一所以在内存种这两大类规则对应的数据结构都是一样的。 我们可以将前面部分当作 key最后的权限/转换后类型当作 value如此所有的 TE 规则实际上都以键值对存放在内存当中。 struct avtab_key {u16 source_type; /* source type */u16 target_type; /* target type */u16 target_class; /* target object class */ #define AVTAB_ALLOWED 0x0001 #define AVTAB_AUDITALLOW 0x0002 #define AVTAB_AUDITDENY 0x0004 #define AVTAB_AV (AVTAB_ALLOWED | AVTAB_AUDITALLOW | AVTAB_AUDITDENY) #define AVTAB_TRANSITION 0x0010 #define AVTAB_MEMBER 0x0020 #define AVTAB_CHANGE 0x0040 #define AVTAB_TYPE (AVTAB_TRANSITION | AVTAB_MEMBER | AVTAB_CHANGE) /* extended permissions */ #define AVTAB_XPERMS_ALLOWED 0x0100 #define AVTAB_XPERMS_AUDITALLOW 0x0200 #define AVTAB_XPERMS_DONTAUDIT 0x0400 #define AVTAB_XPERMS (AVTAB_XPERMS_ALLOWED | \AVTAB_XPERMS_AUDITALLOW | \AVTAB_XPERMS_DONTAUDIT) #define AVTAB_ENABLED_OLD 0x80000000 /* reserved for used in cond_avtab */ #define AVTAB_ENABLED 0x8000 /* reserved for used in cond_avtab */u16 specified; /* what field is specified */ };上述为 key 值定义可以看出 类型 type类别 class 在内存中都是一个 16 位的无符号整数可以看作它们的 ID 值所以理论上来说最多只能定义 65535 个类型。 specified 指明当前是哪种具体的 TE 规则 struct avtab_datum {union {u32 data; /* access vector or type value */struct avtab_extended_perms *xperms;} u; };key 值对应的数据如上所示只有一个元素 32 bit 无符号扩展属性暂时不用了解基本没人用 对于 AV 规则data 为一组权限向量比如说 #define FILE__IOCTL 0x00000001UL #define FILE__READ 0x00000002UL #define FILE__WRITE 0x00000004UL #define FILE__CREATE 0x00000008UL #define FILE__GETATTR 0x00000010UL #define FILE__SETATTR 0x00000020UL #define FILE__LOCK 0x00000040UL .......上述是 file 这个类别的权限位定义在内核里面搜索会发现并没有上述定义这些宏是内核编译的时候自动生成的生成脚本对应着 linux/scripts/selinux/genheaders。 上述可以看出每个权限都是 32 bit 中的某一位 data 中某一比特位为 1 表示拥有该权限为 0 表示没有该权限权限。举个例子如果存在规则 allow a_t b_file_t : file read; 那么当查询 a_t 类型的进程 对 b_file_t 类型的文件有什么访问权限时返回结果 data 值中对应 FILE__READ 那个比特位应该为 1 对于 Type 规则也就是类型转换类的规则data 表示转换后类型的 ID 值。 AVC TE 规则当中又数 AV 规则使用的最频繁为了加快查找速度内核设计了 AVCAccess Vector Cache。 struct avc_entry {u32 ssid;u32 tsid;u16 tclass;struct av_decision avd;struct avc_xperms_node *xp_node; };struct avc_node {struct avc_entry ae;struct hlist_node list; /* anchored in avc_cache-slots[i] */struct rcu_head rhead; };struct avc_cache {struct hlist_head slots[AVC_CACHE_SLOTS]; /* head for avc_node-list */spinlock_t slots_lock[AVC_CACHE_SLOTS]; /* lock for writes */atomic_t lru_hint; /* LRU hint for reclaim scan */atomic_t active_nodes;u32 latest_notif; /* latest revocation notification */ };整个 cache 就是一个哈希表由 avc_node 组成每个 avc_node 又由 key 值(ssid, tsid, tclass)和 value(avd) 组成。 这里的 key 值有三个ssid、tsid、tclass我们对哈希表增删查改需要的 hash 值也是由这三个值算出来。sid全称 security id对于 sid 后面会详细讲述这里先简单说一说。之前有提到过在 SELinux 中每个主体和客体都有一个安全上下文(标签)由 4 部分组成user:role:type:mls)内核中由 struct context 来表示而 sid 则是与 context 对应的一个 id 值context 和 sid 一一对应 value 值为 av_decision其结构体表示如下 struct av_decision {u32 allowed; u32 auditallow;u32 auditdeny;u32 seqno;u32 flags; };AV 规则有 4 种语句allowauditallowdontauditneverallow前三个与上述的定义对应最后一个 neverallow 语句是在编译期间起作用所以内核没有相关定义 对于每一种 AV 规则内核都定义了一组权限向量但其实只有 allowed 对应的向量才表示权限授予与否其他的都是指示当前访问是否应该被日志记录。 比如说对于 FILE__WRITE如果在 allowed 中对应的比特位为 0表示没有权限写如果在 auditdeny 中对应的比特位为 1即使在 allowed 中表示没有权限写但是也不会记录在日志中。 上述就是对 AVC 涉及的数据结构进行介绍其他一些函数大多是哈希表常见的增删改查函数这里不做详细说明可以自己阅读相关内核代码比较简单。这里主要说明权限检查函数avc_has_perm。 int avc_has_perm(u32 ssid, u32 tsid, u16 tclass,u32 requested, struct common_audit_data *auditdata) {//将存放权限查询结果struct av_decision avd; int rc, rc2;//调用此函数来进行真正的权限查询查询结果存放在 avd 中rc avc_has_perm_noaudit(ssid, tsid, tclass, requested, 0,avd);//日志记录相关rc2 avc_audit(ssid, tsid, tclass, requested, avd, rc,auditdata);if (rc2)return rc2;return rc; }inline int avc_has_perm_noaudit(u32 ssid, u32 tsid,u16 tclass, u32 requested,unsigned int flags,struct av_decision *avd) {u32 denied;struct avc_node *node;if (WARN_ON(!requested))return -EACCES;rcu_read_lock();// 根据键值在 avb 中查询 avd_nodenode avc_lookup(ssid, tsid, tclass);// 如果 node 不存在则会去查询 security server然后分配 node填充node插入哈希表等操作if (unlikely(!node)) {rcu_read_unlock();return avc_perm_nonode(ssid, tsid, tclass, requested,flags, avd);}// ae.avd.allowed 记录着allowed权限向量request 表示要查询权限对应的比特位// 一通位操作下来denied 为 1 表示没有该权限反之有该权限denied requested ~node-ae.avd.allowed;memcpy(avd, node-ae.avd, sizeof(*avd));rcu_read_unlock();// 一般不太可能为 denied这么想如果一个系统的 denied 很多多半策略有问题而且系统也不能正常运行// 如果为 denied1则 SELinux 还有其他配置让它变为 allowed比如说如果当前开启了 permissive 模式// 所以这里还需要调用 avc_denied 再次判断当前模式、策略下是否真的没有该权限if (unlikely(denied))return avc_denied(ssid, tsid, tclass, requested, 0, 0,flags, avd);// 返回 0 表示有权限return 0; }举个栗子 这一小节用两个例子说明内核里面到底是如何进行 SELinux 权限检查和类型转换的 假如我们正在执行某个 exec 调用需要检查当前进程是否对该文件有执行权限。内核里面是如何做检查的呢首先是 DAC 检查也就是检查是该文件是否有 x 权限位。 当我们访问文件的时候内核里面经常会调用 inode_permission(idmap, inode, mask) 检查权限。比如说这里想要检查是否有 exec 权限便会调用inode_permission(idmap, nd-inode, MAY_EXEC);之后会存在如下的调用路径 inode_permissionsecurity_inode_permissionselinux_inode_permission//将想要查询的权限用 SELinux 中的向量表示file_mask_to_av// 这里的mode就是inode中的mode元素作用之一就是指示当前文件类型if (!S_ISDIR(mode)){ // mask 可以看作上层想要查询的权限之后转换为SELinux中对应的权限if (mask MAY_EXEC)av | FILE__EXECUTE;} else {//如果访问的是目录想要检查是否有 exec 权限那么实际上是想要检查是否有搜索权限if (mask MAY_EXEC) av | DIR__SEARCH;return av// 调用 avc_has_perm 来查询权限查询结果存放在 avd 结构中avc_has_perm_noaudit(sid, isec-sid, isec-sclass, perms, 0, avd);在 SELinux 中对于目录和文件的执行权限有不同解释对于普通文件那就是真的检查是否可执行。但是对于目录文件来说检查是否能够执行其实指的是能否对该目录进行搜索。 其实在 DAC 中对于目录和普通文件的 x 权限位解释也是不一样的一个文件如果有 x说明该文件可以被执行如果一个目录有 x指的是可以进入这个目录 通俗来讲可以 cd 进去就需要该目录有 x 权限。 我们上层的种种操作其背后都需要各种权限在 SELinux 安全检查的时候都会进行 SELinux 权限检查。 对于类型转换的流程例子先不说了这玩意儿还有点点复杂后面单独来一篇文章说明好了本文就先到这里有什么问题欢迎来交流讨论 首发公号Rand_cs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业营销网站建设公司哪家好营销软文是什么意思

题干: 链接:https://ac.nowcoder.com/acm/contest/369/F 来源:牛客网 题目描述 现在你有 n 把灵剑,其中选择第i把灵剑会得到的 wiw_iwi​ 攻击力。 于此同时,还有q个约束,每个约束形如: …

wordpress改密码上海有什么seo公司

1.同步获取短视频 1.只要播放地址对Json数据解析,先把列表找出: 2.只想要所有的播放地址,通过列表表达式循环遍历这个列表拿到每个对象,再从一个个对象里面找到Video,再从Video里面找到播放地址(play_addr),再从播放地址找到播放…

电子商务网站建设 精品课上海建设摩托车官网报价

背景 项目需要使用微信公众号发消息,然后就来接入这个微信授权啦,微信公众号发消息前提是还需要用户先关注公众号~ 微信授权是有点恶心的,真的真的需要先配置好环境,开发的话目前是可以使用测试号申请公众号使用测试号的appid~ …

亿联时代网站建设游戏搭建平台

核心原理就是在四条边、四个顶点加上透明的div,给不同方向提供按下移动鼠标监听 ,对应计算宽度高度、坐标变化 特性: 支持设置拖拽的最小宽度、最小高度、最大宽度、最大高度可以双击某一条边,最大化对应方向的尺寸;再…

电商网站建设与运营方向就业前景电子商务网站开发需求分析

动漫头像数据集是用于研究和分析动漫头像相关问题的数据集,它包含了大量的动漫风格的头像图像。动漫头像是指以动漫风格绘制的虚构人物的头像图像,常见于动画、漫画、游戏等媒体。 数据集点击下载:YOLO动漫头像数据集50800图片.rar

网站后台怎么做友情链接永久免费不收费的交友软件

转自 http://kuanghy.github.io/2015/12/30/sudo-vim :w !sudo tee %

建设网站 如何给文件命名产品外观设计流程

IMUL(有符号数乘法)指令执行有符号整数乘法。与 MUL 指令不同,IMUL 会保留乘 积的符号,实现的方法是,将乘积低半部分的最高位符号扩展到高半部分。x86 指令集支持三种格式的 IMUL 指令:单操作数、双操作数和三操作数。单操作数格式…

建设网站费用多少建浏览器网站制作

目录 一、四个坐标 二、两个坐标系的相互转换(齐次矩阵)

北京做招聘网站的公司下载安装百度地图导航

SEO优化一直在变化,百度和谷歌的算法也在不断的迭代更新,所以竞争永远不会停止。今天小编就来给大家分享一下,6种不会过时的网站seo优化操作。1.保持正常优化为网站访客提供高质量的内容、卓越的用户体验和安全性以及卓越的技术网站。这可能需…

厦门网站制作计划wordpress加入图片

Python中的树(Tree):高级数据结构解析 树是一种非常重要且常用的数据结构,它的层次结构使得在其中存储和检索数据变得高效。在本文中,我们将深入讲解Python中的树,包括树的基本概念、表示方法、常见类型、…

phpstudy怎样做多个网站优化器

第一部分是生成数据表,常见的生成方法有两种,第一种是导入外部数据,第二种是直接写入数据。 Excel 中的文件菜单中提供了**外部数据的功能,支持数据库和文本文件和页面的多种数据源导入。 获取外部数据 python支持从多种类型的数…

网站开发工程师岗位要求新闻博客软文自助推广

文章目录题目描述思路 & 代码更新版题目描述 这年头当个小偷,都得会 dp 和二叉树了和前面的 I & II 有点不同,这次直接换了数据结构,写树来了。(之后不会是图吧)很厉害,第一次接触到树型的dp&…

建设银行官方网站手机版下载wordpress主题 投稿

盖楼游戏 一个基于JavaScrtipt、Html5 的盖楼游戏 效果预览 点我下载源代码 Game Rule 游戏规则 以下为默认游戏规则,也可参照下节自定义游戏参数 每局游戏生命值为3,掉落一块楼层生命值减1,掉落3块后游戏结束,单局游戏无时间限…

江苏10大网站建设公司唐山网站建设公司哪家好

教育 -税法-章节资料考试资料-江西财经大学【】 测试题 1、【单选题】以下关于对税收概念的相关理解不正确的是( )。 A、税收是目前我国政府取得财政收入的最主要工具 B、国家征税依据的是财产权利 C、国家征税是为了满足社会公共需要 D、税收“三性”是…

南通网站建设服务罗永浩做的网站

所谓整体二分,就是对整体进行二分 (逃) 前言 又是一个狂艹树套树的小清新分治算法 但是树套树不需要动脑啊 整体二分有一些比较重要的条件: 修改对判定答案的贡献互相独立,修改之间互不影响效果修改如果对判定答案有…

天津建设工程注册中心网站域名可以做网站名吗

1.vim输入中文乱码 在/etc/vimrc最下面输入以下代码 set fileencodingsutf-8,gb2312,gbk,gb18030 set termencodingutf-8 set fileformatsunix set encodingprc 2.vim复制的时候如果有#号,下面的代码开头都会有#号 在编辑模式输入:set paste 再进行粘贴即可 3…

网站建设任职资格wordpress网速卡

C 语言 break和continue语句 C 语言 break break语句在遇到循环时将立即结束循环。其语法为: break; break语句几乎总是与if…else循环内的语句一起使用。 示例1:break语句 //程序计算最多10个数字的总和 //如果输入负数,则循环终止 includ…

门户网站开发需求分析什么是软件外包产业

MySQL8.0和MySQL5.7具有众多不同之处,此处不赘述。这里,只简单讲讲在安装过程中遇到的问题之一和解决办法: MySQL8.0安装完成之后的默认密码是多少?如何修改初始密码? 1 启动MySQL服务 启动MySQL服务的命令: shell> sudo service mysqld start Starting mysqld:[ OK ]…

取名字网站如何做德州seo整站优化

1. 题目 给定字典中的两个词,长度相等。 写一个方法,把一个词转换成另一个词, 但是一次只能改变一个字符。 每一步得到的新词都必须能在字典中找到。 编写一个程序,返回一个可能的转换序列。如有多个可能的转换序列,…

自己动手建设网站过程网站服务器 要求

有一次坐公交拿了IC卡排队上车,前面一个人是扔硬币的,我大脑短路跟着把IC卡扔进去了…… ●早上要戴隐形眼镜,结果把盖打开直接把眼镜倒马桶里,然后镇定地倒入新的护理液,准备摘眼镜,半天摘不下来。 ●邻居忘了带钥匙,…