首页 > 系统相关 >Windows 文件夹权限不足——夺权

Windows 文件夹权限不足——夺权

时间:2023-10-27 21:56:44浏览次数:29  
标签:TAKEOWN 文件 Windows system 夺权 文件夹 ICACLS 权限

由于Windows有着大家都不怎么使用的多用户权限管理机制,有的时候在一些特殊文件夹无法使用默认权限进行操作,本文以安装在 C:\ProgramDataMiniconda3 为例。

主要有两种方法:

  1. 将文件夹所有者改为自己
  2. 给自己添加完全控制权限

TIPS

  • 操作文件夹时,如果文件夹中间有特殊字符或空格,记得给文件夹路径两端加上英文双引号。
  • Windows 系统不区分大小写,所以命令中的参数和指令大小写都行。(除了文件夹路径,我不确定)
  • 按 Win+X 组合键,经常可以看到 命令提示符(管理员) 或者 Windows Powershell(管理员),需要管理员权限时,可以使用此方法打开提权过的终端窗口以输入指令。
  • 如何查看自己的用户名?在非管理员权限下在终端中输入 whoami,就会返回格式类似于 域/用户 的格式的文本。

Takeown

windows 下的 takeown 指令用于将文件(夹)的所有者更改为自己。

对于使用该文件夹时用管理员权限账户的情况比较好用,因为非管理员权限用户可能无权夺权(逻辑有点绕),只能在命令中添加 /A 参数夺权给本机管理员组。
也可以批量将外来文件(比如 NTFS 移动硬盘上的权限为其他用户的文件)夺权。

示例:

# /R 递归
#   因为用了递归,似乎可以不用通配符
# /D 对于无“列出文件夹”权限的处理方法
#   Y —— 老子就要夺权
#   N —— 算了吧算了吧
takeown /f C:\ProgramData\Miniconda3 /r /d y

TAKEOWN 原生帮助

TAKEOWN [/S system [/U username [/P [password]]]]
        /F filename [/A] [/R [/D prompt]]

描述:
    该工具以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问
    的文件访问权。

参数列表:
    /S           system          指定要连接到的远程系统。

    /U           [domain\]user   指定用户上下文,命令在此上下文中执行。

    /P           [password]      指定给定用户上下文的密码。如果省略,
                                 提示输入。

    /F           filename        指定文件名或目录名模式。可以用通配符 "*"
                                 指定模式。允许共享名\文件名。

    /A                           将所有权给于管理员组,而不是当前用户。

    /R                           递归: 指示工具运行于指定的目录和子目录
                                 里的文件上。

    /D           prompt          当前用户在一个目录里没有“列出文件夹”
                                 权限时,使用默认答案。当在子目录里进行
                                 递归 (/R) 操作时会发生这种情况。用有效
                                 值 "Y" 获取所有权或用 "N" 跳过。

    /SKIPSL                      不遵循符号链接。
                                 仅适用于 /R。

    /?                           显示此帮助消息。

    注意: 1) 如果未指定 /A,文件所有权会将被授予
             当前登录的用户。

          2) 不支持用 "?" 和 "*" 的混合模式。

          3) /D 用于抑制确认提示。

示例:
    TAKEOWN /?
    TAKEOWN /F lostfile
    TAKEOWN /F \\system\share\lostfile /A
    TAKEOWN /F directory /R /D N
    TAKEOWN /F directory /R /A
    TAKEOWN /F *
    TAKEOWN /F C:\Windows\System32\acme.exe
    TAKEOWN /F %windir%\*.txt
    TAKEOWN /S system /F MyShare\Acme*.doc
    TAKEOWN /S system /U user /F MyShare\MyBinary.dll
    TAKEOWN /S system /U domain\user /P password /F share\filename
    TAKEOWN /S system /U user /P password /F Doc\Report.doc /A
    TAKEOWN /S system /U user /P password /F Myshare\*
    TAKEOWN /S system /U user /P password /F Home\Logon /R
    TAKEOWN /S system /U user /P password /F Myshare\directory /R /A

takeown | Microsoft Learn

ICACLS

icacls 用于显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。
通俗来讲,就是你在 属性-安全-高级 里看到的那些条目。

如果你想用当前用户的身份操作文件夹(这样可以相对提高安全性、不需要弹出 UAC 控制框),你可以手动添加自己的用户的完全控制权限。
使用这个命令对权限操作更加直接。

因为我是强迫症,所以如果文件夹没有特殊用途的权限,我会先将文件(夹)的权限重置一下:(请使用管理员权限运行命令)

# /T: 递归
# /C: 遇到错误时显示错误但不停止命令
icacls C:\ProgramData\Miniconda3 /reset /t /c

然后再给这个文件夹加上自己用户的完全控制权限:

# /grant: 授予/允许某个用户的某种权限
#   desktop-*******\z****r  表示在 "desktop-*******" 域下的用户 "z****r"
#   如果看不懂,直接复制 whoami 返回的值就行。
#   <用户>:F  表示“完全控制”权限
icacls C:\ProgramData\Miniconda3 /grant desktop-*******\z****r:F /t /c

然后就好啦!你就会发现,你不需要管理员权限也能操作这个文件夹了。

ICACLS 原生帮助

ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
    将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中
    以便将来与 /restore 一起使用。请注意,未保存 SACL、
    所有者或完整性标签。

ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
                 [/C] [/L] [/Q]
    将存储的 DACL 应用于目录中的文件。

ICACLS name /setowner user [/T] [/C] [/L] [/Q]
    更改所有匹配名称的所有者。该选项不会强制更改所有
    身份;使用 takeown.exe 实用程序可实现
    该目的。

ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
    查找包含显式提及 SID 的 ACL 的
    所有匹配名称。

ICACLS name /verify [/T] [/C] [/L] [/Q]
    查找其 ACL 不规范或长度与 ACE
    计数不一致的所有文件。

ICACLS name /reset [/T] [/C] [/L] [/Q]
    为所有匹配文件使用默认继承的 ACL 替换 ACL。

ICACLS name [/grant[:r] Sid:perm[...]]
       [/deny Sid:perm [...]]
       [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
       [/setintegritylevel Level:policy[...]]

    /grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r,
        这些权限将替换以前授予的所有显式权限。
        如果不使用 :r,这些权限将添加到以前授予的
        所有显式权限。

    /deny Sid:perm 显式拒绝指定的用户访问权限。
        将为列出的权限添加显式拒绝 ACE,
        并删除所有显式授予的权限中的相同权限。

    /remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用
        :g,将删除授予该 SID 的所有权限。使用
        :d,将删除拒绝该 SID 的所有权限。

    /setintegritylevel [(CI)(OI)]级别将完整性 ACE 显式
        添加到所有匹配文件。要指定的级别为以下级别
        之一:
             L[ow]
             M[edium]
             H[igh]
        完整性 ACE 的继承选项可以优先于级别,但只应用于
        目录。

    /inheritance:e|d|r
        e - 启用继承
        d - 禁用继承并复制 ACE
        r - 删除所有继承的 ACE


注意:
    Sid 可以采用数字格式或友好的名称格式。如果给定数字格式,
    那么请在 SID 的开头添加一个 *。

    /T 指示在以该名称指定的目录下的所有匹配文件/目录上
        执行此操作。

    /C 指示此操作将在所有文件错误上继续进行。
        仍将显示错误消息。

    /L 指示此操作在符号
      链接本身而不是其目标上执行。

    /Q 指示 icacls 应该禁止显示成功消息。

    ICACLS 保留 ACE 项的规范顺序:
            显式拒绝
            显式授予
            继承的拒绝
            继承的授予

    perm 是权限掩码,可以指定两种格式之一:
        简单权限序列:
                N - 无访问权限
                F - 完全访问权限
                M - 修改权限
                RX - 读取和执行权限
                R - 只读权限
                W - 只写权限
                D - 删除权限
        在括号中以逗号分隔的特定权限列表:
                DE - 删除
                RC - 读取控制
                WDAC - 写入 DAC
                WO - 写入所有者
                S - 同步
                AS - 访问系统安全性
                MA - 允许的最大值
                GR - 一般性读取
                GW - 一般性写入
                GE - 一般性执行
                GA - 全为一般性
                RD - 读取数据/列出目录
                WD - 写入数据/添加文件
                AD - 附加数据/添加子目录
                REA - 读取扩展属性
                WEA - 写入扩展属性
                X - 执行/遍历
                DC - 删除子项
                RA - 读取属性
                WA - 写入属性
        继承权限可以优先于每种格式,但只应用于
        目录:
                (OI) - 对象继承
                (CI) - 容器继承
                (IO) - 仅继承
                (NP) - 不传播继承
                (I) - 从父容器继承的权限

示例:

        icacls c:\windows\* /save AclFile /T
        - 将 c:\windows 及其子目录下所有文件的
          ACL 保存到 AclFile。

        icacls c:\windows\ /restore AclFile
        - 将还原 c:\windows 及其子目录下存在的 AclFile 内
          所有文件的 ACL。

        icacls file /grant Administrator:(D,WDAC)
        - 将授予用户对文件删除和写入 DAC 的管理员
          权限。

        icacls file /grant *S-1-1-0:(D,WDAC)
        - 将授予由 sid S-1-1-0 定义的用户对文件删除和
          写入 DAC 的权限。

icacls | Microsoft Learn

标签:TAKEOWN,文件,Windows,system,夺权,文件夹,ICACLS,权限
From: https://www.cnblogs.com/zhiders/p/17793204.html

相关文章

  • [spring学习]一定要写对resources 文件夹的名字,不然,即使正确设置了静态资源访问,仍
    今天遇到的问题,项目能启动,能访问正常的页面,只是静态资源没法访问好好检查过配置文件了,springmvc-config也正常的放行静态资源了就是访问不了最后,想重新创建项目的时候,突然意识到是文件夹名字的问题可以写configs或者resources,但是一定要写成带s的复数形式......
  • 实用小脚本——Windows系统使用dos命令删除文件
    @echooff&color0aset/pff=输入文件名:title查找%ff%echo.&set/p=正在查找<nulfor%%iin(cdefgh)do(ifexist%%i:\ (cd/d%%i:\set/p=%%i:<nulfor/f "delims="%%jin('dir/b/a-d/s"%ff%"2^>nul')do(echo.&......
  • 在Windows和Linux终端下使用代理的方式
    背景在快乐上网的时候,网页会经过代理,但是有些在终端运行的程序不一定会经过代理,比如用gitclonegithub仓库的时候,或者curl下载githubrelease的时候,如果不走代理,下载可能会很慢很慢。Windows在执行gitclone前,在终端执行sethttps_proxy=localhost:7890sethttp_proxy=loca......
  • VBA获取文件夹下所有文件名或者文件夹名
    VBA获取文件夹下所有文件名或者文件夹名1,新建excel宏2,在sheet中添加宏执行按钮3,设置按钮执行的代码名VBA代码如下:`点击查看代码'选择文件按钮程序PrivateSubCommandButton1_Click()Application.ScreenUpdating=FalseCallChooseApplication.ScreenUpdatin......
  • Azure DevOps 发布.Net项目到Windows IIS站点之pubxml
    通过VS中我们配置的pubxml进行发布trigger:-masterpool:vmImage:'windows-2022'variables:-group:GeexPublish-name:my-user-variablevalue:$[variables.UserName]#usesruntimeexpression-name:my-passed-variablevalue:$[variables.PassWord]......
  • C#winform软件实现一次编译,跨平台windows和linux兼容运行,兼容Visual Studio原生界面Fo
    一、背景:微软的.netcore开发工具,目前来看,winform界面软件还没有打算要支持linux系统下运行的意思,要想让c#桌面软件在linux系统上运行,开发起来还比较麻烦。微软只让c#的控制台软件支持在linux运行。二、解决方案:我想到的一个方案是自定义封装软件的System.Windows.Forms组件,把......
  • Anaconda在Windows上安装后终端指令不生效
    查看环境变量是否已经配置好;环境变量配置好应该是"Scripts"文件夹作为conda指令的根目录而不是别的,例如,我的环境变量配置路径如下:C:\Users\ezhar\anaconda3\Scripts......
  • mysql5.7启用ssl连接(windows版本)
    环境:OS:windows2012Mysql:5.7.29 1.安装mysql安装步骤省略,mysql5.7默认安装都已经安装好了ssl的,并默认启用了的.证书在数据目录下 D:\mysql57\dataD:\mysql57\data>dir驱动器D中的卷是新加卷卷的序列号是7603-6C5BD:\mysql57\data>dir*.pem驱动器D中的......
  • 指定文件夹内删下划线程序(输入数字为需要保留的下划线)
    importosdefrename_files_in_directory(directory_path,underscore_input):try:#如果是范围输入,则解析范围的结束数字if'-'inunderscore_input:start,end=map(int,underscore_input.split('-'))underscore_count......
  • 关闭 Windows10 系统 打开 IE浏览器自动跳转edge 浏览器
    1.在Windows10系统打开edge浏览器,点击设置功能2.打开设置功能后,点击"默认浏览器",设置“InternetExplorer兼容性”的“让InternetExplorer在MicrosoftEdge中打开网站” 设置成“从不”,参照下图设置 3.关闭edge浏览器,重新打开IE浏览器,即可! ’ ......