AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 27332
Accepted
Joe
Joe
Asked: 2009-06-18 06:55:56 +0800 CST2009-06-18 06:55:56 +0800 CST 2009-06-18 06:55:56 +0800 CST

如何从命令行获取文件的所有权?

  • 772

每隔一段时间,我就会遇到需要拥有所有权的文件。我通常cacls用于更改 ntfs 权限,但它似乎没有所有权。在 *nix 下我会运行类似chown me:me <file>. 是否有相当于的窗户chown?

windows windows-xp command-line-interface access-control-list ntfs
  • 10 10 个回答
  • 170870 Views

10 个回答

  • Voted
  1. Evan Anderson
    2009-06-18T07:00:41+08:002009-06-18T07:00:41+08:00

    您正在寻找“TAKEOWN.EXE”,它首先在 Windows Server 2003 中作为标准组件,我相信之前的资源工具包项目。它适用于 Windows 7,也许是更新的系统。

    takeown /f <some-file-or-folder> /r
    

    /r对指定文件夹的所有子级递归执行操作。与 不同subinacl,您必须以您尝试拥有所有权的用户身份登录;或者,您可以简单地将所有权分配给“管理员”组。

    这是其文档的副本,保存在SS64上:

    语法 TAKEOWN [/s 计算机 [/u [域]用户名 [/p [密码]]]] /f 文件名 [/a] [/r [/d {Y|N}]]

    Key /s Computer 远程计算机的名称或 IP 地址(不要使用反斜杠)。默认 = 本地计算机。此参数适用于命令中指定的所有文件和文件夹。

    /u [Domain]UserName 以指定用户帐户的权限运行脚本。默认 = 系统权限。

    /p [密码] 在 /u 参数中指定的用户帐户的密码。

    /f FileName 文件名、UNC 路径或目录名称模式。接受通配符 *

    /a 将所有权授予管理员组而不是当前用户。

    /r 对指定目录和子目录中的所有文件执行递归操作。

    /d {Y | N} 取消当前用户对指定目录没有“列出文件夹”权限时显示的确认提示,改为使用默认值: Y:取得该目录的所有权。N:跳过目录。请注意,您必须将此选项与 /r 选项结合使用。如果未指定 /a 参数,则将文件所有权授予当前登录到计算机的用户。

    takeown 命令不支持使用 (? 和 *) 的混合模式。

    更改文件/文件夹的所有者后,您可以为文件分配完全权限,然后读取或删除它们。

    • 28
  2. Best Answer
    crb
    2009-06-18T07:05:10+08:002009-06-18T07:05:10+08:00

    subinacl是一个 Windows 系统管理员的强大工具,用于处理与所有权和 ACL 相关的所有事情。您可以将所有权更改为除您以外的任何人(您不能使用 GUI 执行此操作)。

    subinacl /file test.txt /setowner=domain\foo
    

    这使您可以将权限设置为您喜欢的任何用户,而不必成为管理员(我相信 takeown.exe 需要)。

    • 25
  3. chipiik
    2013-09-01T08:41:13+08:002013-09-01T08:41:13+08:00

    取得文件夹和其中所有内容的所有权和全部权利:

    takeown /F somedir /A /R
    icacls somedir /grant:r User:F /T
    

    确保以管理员身份启动命令提示符!

    我必须以管理员身份启动命令提示符,它在 Windows 8.1 中对我有用。由于 Windows 8.1 的尴尬,我不得不搜索“命令”,右键单击命令提示符图标。对我来说,为了看到“以管理员身份运行”选项。我在任务栏上固定了一个命令提示符,但右键单击它不会显示“以管理员身份运行”选项。

    在 Windows 10 中,“以管理员身份运行”应该可以作为右键单击选项提供给您。

    Takeown 语法:

    takeown [/s <Computer> [/u [<Domain>\]<User name> [/p [<Password>]]]] /f <File name> [/a] [/r [/d {Y|N}]]
    

    自带参考。

    Icacls 语法:

    icacls <FileName>[/GRANT [: r] <Sid>: <Perm> [...]] [/ Denegar <Sid>: <Perm> [...]] [/Remove [:g|:d]] <Sid> [...]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel <Level>: <Policy> [...]]Icacls <Directory>[/ sustituir <SidOld><SidNew>[...]] [/ restore <ACLfile>[/ c] [/ l] [/q]]
    

    icacls 参考。

    • 19
  4. Jim
    2013-11-10T07:35:15+08:002013-11-10T07:35:15+08:00

    我知道这是一篇很老的帖子,但是 Windows 7 和更新版本中内置了一种方法(可能在 Windows Vista 中,但我不确定)。从要重置的文件夹中的升级命令提示符运行以下命令。/t告诉icacls递归执行操作。

    icacls .\* /setowner %UserDomain%\%UserName% /t
    icacls .\* /reset /t
    

    第一个命令将所有者重置为曾经通过环境变量登录的人。当然,也可以使用特定的名称。

    然后,第二个命令强制将权限沿树重新继承到所有子文件夹和文件。

    希望这对将来的某人有所帮助。

    • 9
  5. Helge Klein
    2011-01-15T00:53:07+08:002011-01-15T00:53:07+08:00

    您可能想看看SetACL,权限管理的瑞士军刀。以下是如何将驱动器 C: 上所有文件的所有权分配给“管理员”并一次性删除所有子对象的继承保护的示例:

    SetACL.exe -on "C:\\" -ot file -actn setprot
               -op "dacl:np;sacl:nc"
               -rec cont_obj
               -actn setowner -ownr "n:S-1-5-32-544;s:y"
    

    您还可以添加-silent.

    • 6
  6. Dave Drager
    2009-06-18T07:03:57+08:002009-06-18T07:03:57+08:00

    对于 Windows 2003、2008 或 Vista 或 7,请使用Takeown。

    对于 Windows 2000,使用Fileowners.pl。

    • 3
  7. jnaab
    2011-03-23T06:06:14+08:002011-03-23T06:06:14+08:00

    在 Windows Server 2003 R2(及更高版本)中,您可以利用内置工具icacls.exe从命令行更改所有权,以及它扩展的所有传统 cacls.exe 操作...

    请注意,icacls.exe 默认为“编辑”模式,而 cacls.exe 默认为“替换”模式——对于我们这些被 cacls 细微差别(不止一次)咬伤的人来说,这是一个可喜的变化!

    • 3
  8. Skelewir
    2011-05-06T13:28:51+08:002011-05-06T13:28:51+08:00

    另一种选择是fileacl 它很小,可以在对象上设置/取消设置“继承/不继承”标志,这与大多数 Windows 实用程序不同。

    • 1
  9. chepseskaf
    2013-07-19T05:49:47+08:002013-07-19T05:49:47+08:00

    我找到了使用 Windows 工具的解决方案:cacls

    cacls <file or directory> /E /T /G <user>:F
    
    • 0
  10. Jörg
    2013-08-27T06:55:58+08:002013-08-27T06:55:58+08:00
    1. 以管理员用户身份打开命令提示符并切换到有问题的目录
    2. 取得那里所有文件的所有权......例如:takeown /f *.jpg
    3. 向您选择的用户授予访问权限......示例:(icacls *.jpg /grant "Everyone":F请注意,在非英语 Windows 中,“Everyone”可能不存在,例如在德语 Windows 中,它仅适用于“Jeder”——Windows 翻译命令选项真的很糟糕!)
    • 0

相关问题

  • 您最喜欢的云计算提供商是什么?[关闭]

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve