修改一个对象的所有者

news2025/1/30 16:43:12

警示:本文需要你懂点儿 “技术”。

修改一个对象(例如一个文件)的所有者看起来不是很复杂:你只需要调用 SetNamedSecurityInfo 并传入一个新的安全描述符就可以了,是的,就是这么简单。

难点在于,你如何到达这个调用时间点。(在这里,我要感谢 Windows 安全团队 John 的对于这篇文章中某些部分的纠正)

如果你拥有一个对象的 WRITE_OWNER 权限,则可以修改对象的所有者为你自己(或者令牌中具有 SE_GROUP_OWNER 属性的任意 SID),也就是说:你可以成为对象的所有者。
但是,你无法修改对象的所有者到其他人,也即:你无法将对象的所有者给到另外一个人。如果这样做,就可能允许你违反配额限制(quota restrictions)。

我们做一个思想实验:假设上面的做法是可行的,就是说,你可以将对象的所有权更改为其非成员的内容: 你的账户已达到其磁盘配额。这没有问题,你只需找到一个没有超过配额的人(比如会计部门的弗雷德),然后拿走你的一些最大的文件,并将其所有者设置为弗雷德。
这导致磁盘空间被赋予给它的新主人弗雷德,弗雷德甚至不知道它已经发生在他身上。
如果你将文件放在弗雷德无权访问的目录中,可怜的弗雷德将开始收到”你已超出磁盘配额”消息,并且无法找到你放在这个目录中的这个邪恶文件。

这就像偷别人的借书证并用它借书一样。

为了将所有者设置为其他人,你需要使用 SeRestorePrivilege,默认情况下,该权限分配给管理员和备份操作员。备份操作员需要能够将所有者设置为其他人,因为还原其安全描述符是从备份还原文件的过程的重要组成部分。

但是 SeTakeOwnershipPrivilege 呢?该权限分配给管理员,它允许你像 WRITE_OWNER 访问(但不是 SeRestorePrivilege)一样行事。使用 SeTakeOwnershipPrivilege,你可以获得任何文件的所有权,但不能将其分配给其他人。

然后是神秘的 CREATOR_OWNER SID,在微软知识库文章以及 Larry Osterman 的博客文章中都有描述。要记住的重要一点是,在创建对象后向对象授予 CREATOR_OWNER SID 实际上不会向创建者或所有者授予任何权限,如需获取更多详细信息,请查看相关文章内容。

总结

在日常使用 Windows 的过程中,我们所触摸用户界面只是冰山上的一角。
水下的是各种庞然大物:虚存,对象管理,安全引用监视器,文件管理,进线程管理。
一个有追求的技术人,需要潜入水下,探寻那里隐藏的秘密。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《What are the access rights and privileges that control changing ownership of an object?》

 

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

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

相关文章

分布式之Quorum NWR算法

写在前面 假设现在我们实现了AP 系统,但是公司突然要对某些业务进行实时的数据计算,并且要求按照强一致性的方式来读取数据,此时作为系统设计这的我们该怎么办呢?单独为这部分业务实时抽出最新数据?还是修改原有系统&…

个人服务器+博客网站搭建

实现目标: 远程访问windows远程访问linux并在该环境开发(ssh)个人博客网站运 环境准备 准备一台性能较好的个人电脑,推荐台式机,仅在环境搭建初期需要显示器,后期使用基本不需要屏幕。规划好磁盘使用&…

从0探索NLP——神经网络

从0探索NLP——神经网络 1.前言 一提人工智能,最能想到的就是神经网络,但其实神经网络只是深度学习的主要实现方式。 现在主流的NLP相关任务、模型大都是基于深度学习也就是构建神经网络实现的,所以这里讲解一下神经网络以及简单的神经网络…

随想录二刷(数组二分法)leetcode 704 35 34 69 367

第一题 leetcode 704.二分查找 二分法的思路 二分法的思路很简单 数组必须有序先查找中间元素进行比较得出大小再考虑向左比较还是向右比较 代码实现 class Solution { public:int search(vector<int>& nums, int target) {int left 0;int right nums.size() -…

[oeasy]python0090_极客起源_wozniac_苹果公司_Jobs_Wozniac

极客起源 回忆上次内容 上次回顾了 DEC公司的兴起 从IBM的大型机 到DEC的小型机Mini Computer 再到DEC的终端 VT-100 计算机基础元器件发生了进化 从ENIAC的 电子管到PDP系列的 晶体管 新的器件 体积小了价格低了稳定性 提高了而且 连成了网络 ARPA网 就是 最初的Internet …

2023年度最新且最详细Ubuntu的安装教程

目录 准备ISO镜像 1.去官网下载镜像&#xff0c;或者找有镜像源的网站下载 阿里云镜像站 2. 如果服务器是打算直接把底层系统安装为Ubuntu的话还需制作系统U盘 安装 1.新建虚拟机调整基础配置 2.打开电源&#xff0c;进入安装界面&#xff08;到这一步就跟u盘安装步骤一致…

深度学习Week16-yolo.py文件解读(YOLOv5)

目录 简介 需要的基础包和配置 二、主要组件介绍 2.1 parse_model 2.2Detect类 2.3DetectionModel类 三、实验 &#x1f368; 本文为[&#x1f517;365天深度学习训练营]内部限免文章&#xff08;版权归 *K同学啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同学啊…

JavaEE简单示例——动态SQL的<trim>属性

简单介绍&#xff1a; 在之前我们介绍过使用<where>和<set>可以帮我们动态的添加和删除一些关键字&#xff0c;但是这些只能操作特定的关键字&#xff0c;比如where和set&#xff0c;但是有一些时候我们需要操作的关键字并不是这些常见的关键字&#xff0c;而是一…

基于SSM的婴幼儿商城

基于SSM的婴幼儿商城 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; …

软件测试3年经验就能拿30K?

1.软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪&#xff0c;而是从8000涨到15K加到25K的涨薪。基本上三年之内就可以实现。 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走。 有些同学想去做测试&#xff0c;是希望能够日…

springboot+vue员工宿舍报修系统 uniapp微信小程序开发的

目 录 目 录 III 第一章 概述 1 1.1 研究背景 1 1.2 开发意义 1 1.3 研究现状 1 1.4 研究内容 2 1.5 论文结构 2 第二章 开发技术介绍 1 2.2 微信开发者工具 1 2.3 mysql数据库介绍 1 2.4 MySQL环境配置 2 2.5 B/S架构 2 第三章 系统分析 1 3.1 可行性分析 1 3.1.1 技术可行性…

这次,我的CentOS又ping不通www.baidu.com了(gateway配置)

当我们保证了宿主机与虚拟机的ip地址在同一网段&#xff0c;并且我们使用虚拟机ping宿主机&#xff0c;与宿主机ping虚拟机都可以互相ping通的情况下虚拟机却ping不通外网了&#xff0c;由于涉及到了跨越网络访问&#xff0c;所以我们应该把问题聚焦在网关的配置上&#xff01;…

手工布署 java 项目

新建一个java springboot项目 maven 这是一个非常简易的 springBoot 的项目 使用 maven 的 package 工具进行打包 把包上传到 linux 的机器上&#xff0c; 确保 linux 机器上安装了 java jdk工具&#xff0c; 并且配置好了 JAVA_HOME 注意&#xff0c;helloworld 默认的是要使…

Rocky 9.1操作系统实现zabbix6.0的安装部署实战

文章目录前言一. 实验环境二. 安装zabbix过程2.1. 安装zabbix源2.2 安装zabbix相关的软件2.3 安装数据库并启动2.4 开始初始化数据库&#xff1a;2.5 创建数据库实例及对应的用户2.6 导入官网提供的数据2.7 配置zabbix 服务的配置文件2.8. 启动服务2.9 从网页进行安装2.10 登陆…

H5盲盒抽奖系统源码

盲盒抽奖系统4.0&#xff0c;带推广二维码防洪炮灰功能和教程。 支持微信无限回调登录 标价就是源码价格&#xff0c;vuetp5框架编写&#xff0c;H5网页&#xff0c;前后端分离 此源码为正规开发&#xff0c;正版产品已申请软著。 开源无加密无授权&#xff0c;可以二开使用…

网络工程师必备知识点

作为网络工程师&#xff0c;您将负责设计、部署和维护计算机网络系统。这包括构建、配置和管理网络设备&#xff0c;如交换机、路由器、防火墙等&#xff0c;并确保网络系统能够高效地运行。您需要了解计算机网络的各个层次、协议、标准和技术&#xff0c;包括TCP/IP、DNS、HTT…

东京大学最新研究成果!一种可实现陆空两栖的新型四足机器人SPIDAR,具备多模态运动能力

原创/文 BFT机器人 现实中&#xff0c;蜘蛛可以凭借飘荡的蛛丝在空中漂浮&#xff0c;让它们能够穿越复杂地形。普通蜘蛛长度只有几毫米&#xff0c;重量只有几十克&#xff0c;如何让比蜘蛛重数百倍的机器人实现多模态运动&#xff0c;是众多学者研究的热点。 具有多模态运动…

分布式链路追踪-skywalking

一、分布式调用链随着业务的高速发展&#xff0c;服务之间的调用关系愈加复杂线上每一个请求会经过多个业务系统&#xff0c;并产生对各种缓存或者DB 的访问&#xff0c;业务流会经过很多个微服务的处理和传递。问题&#xff1a;• —次请求的流量从哪个服务而来&#xff1f;最…

ChatGPT这是要抢走我的饭碗?我10年硬件设计都有点慌了

前 言 呃……问个事儿&#xff0c;听说ChatGPT能写电路设计方案了&#xff0c;能取代初级工程师了&#xff1f;那我这工程师的岗位还保得住么&#xff1f;心慌的不行&#xff0c;于是赶紧打开ChatGPT问问它。 嘿&#xff0c;还整的挺客气&#xff0c;快来看看我的职业生涯是否…

图扑孪生工厂流水线组态图可视化

前言 2018 年&#xff0c;世界经济论坛(WEF)携手麦肯锡公司共同倡议并正式启动了全球“灯塔工厂网络项目”(Lighthouse Network)&#xff0c;共同遴选率先应用工业革命 4.0 技术实现企业盈利和持续发展的创新者与示范者。这就使得工厂系统需要对各流水线及生产运行成本方面进行…