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 / 问题 / 43794
Accepted
pk.
pk.
Asked: 2009-07-22 13:38:06 +0800 CST2009-07-22 13:38:06 +0800 CST 2009-07-22 13:38:06 +0800 CST

使用 ICACLS 设置用户目录的权限

  • 772

我正在尝试重置用户目录的权限,并且在脚本的最后一步遇到了一些麻烦。我的脚本基本上拥有整个用户目录的所有权,重置目录的所有文件和文件夹的权限,明确授予我需要的权限,停止从父文件夹继承所有权限,设置所有文件的合法所有者(指定用户)和文件夹,然后删除我给自己的权限,以便我可以对文件进行操作。我需要这最后一步将自己从所有文件和子文件夹中删除,但目前它只是将我从 %userDir% 中删除,并将所有继承的权限留在下面。这是 ICACLS 的一个明显缺点。有谁知道其他方法可以做到这一点?

set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%" /inheritance:r
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T
ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%"
windows scripting permissions
  • 3 3 个回答
  • 134172 Views

3 个回答

  • Voted
  1. Best Answer
    Evan Anderson
    2009-07-22T17:03:54+08:002009-07-22T17:03:54+08:00

    首先是一个观察:每次你阻止继承时,你都在切断自己未来的灵活性。我不惜一切代价避免阻止继承。

    例如,如果您需要用户能够列出顶级“E:\Home Directories”文件夹的内容,请考虑以下权限:

    • SYSTEM - 完全控制 - 应用于此文件夹、子文件夹和文件
    • BUILTIN\Administrators - 完全控制 - 应用于此文件夹、子文件夹和文件
    • BUILTIN\Authenticated Users - 读取和执行 - 仅应用于此文件夹

    最后一个权限不会继承到子文件夹中。在每个子文件夹中,继承保持启用状态,您只需指定具有“修改”或“完全控制”权限的用户(取决于您对用户能够在其主目录中设置权限的感觉如何)。(通常我通过在非“高级”安全属性表中添加“Authenticated Users”来设置最后一个权限,取消选中“读取”和“读取并执行”复选框。然后我进入“高级”对话框并更改该 ACE 的“应用到”设置为“仅此文件夹”。就点击次数而言,这是设置它的最简单方法。)

    然后,您的脚本变为:

    set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
    TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
    ICACLS "E:\Home Directories\%userDir%" /reset /T
    ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F
    ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T
    

    我强烈怀疑添加我上面描述的“经过身份验证的用户”权限,将继承设置为“仅限此文件夹”将为您提供您正在寻找的功能,并且如果您发现,将为您提供未来的灵活性您必须设置将来可能需要继承到所有用户主目录的权限。

    这是我的用户主目录、重定向的“我的文档”、“桌面”等文件夹以及漫游用户配置文件目录的 SOP。它工作得很好。

    编辑

    回复:您对 BUILTIN\Administrators 访问的评论

    多年来,我与人们就我对授予 BUILTIN\Administrators 访问权限的看法发生了各种争论,我的看法是:

    • 如果您可以访问他们的文件,则更容易解决特定类别的用户问题。“获得所有权”是一件痛苦的事,如果还有大量文件存在,也可能会很慢。

    • 正如您在 ICACLS 中看到的那样,BUILTIN\Administrators 可以“分配”所有权(除了“获取”它),因此首先不让 BUILTIN\Administrators 访问文件不会增加“安全性”。

    • 除非您正在使用审核(并筛选大量可能存在的误报条目),否则当 BUILTIN\Administrators 用户获得他们不应该访问的文件的所有权、复制它们,然后将文件返回给它们的“正确”所有者和权限。

    • 在 Microsoft 世界中,加密文件系统 (EFS) 旨在解决防止未经授权的 BUILTIN\Administrators 访问发生的问题。NTFS ACL 不能解决这个问题。(显然,EFS 并不是镇上唯一的节目。加密是解决“限制网络管理员访问”问题的真正答案,无论您如何分割它。)

    在我看来,不指定 BUILTIN\Administrators 有权访问用户主目录(实际上是任何文件夹)意味着您增加了解决问题所需的复杂性和时间,同时提供了几乎没有真正的安全性(“几乎没有“因为它在没有安全感的地方给人一种虚假的安全感)。

    我已经放弃了试图通过逻辑来赢得与人的争论。这似乎是一些人的情感问题。这就像放置在 Exchange 组织根目录中的愚蠢的“拒绝/接收为”ACE,以防止某些特权组打开用户邮箱。它没有提供真正的安全性(因为没有审计可以根据需要删除/重新应用 ACE)、一种虚假的安全感,并且在解决实际问题时会受到阻碍。

    即使您不喜欢我关于 BUILTIN\Administrators 有权访问的论点,您也希望通过在适当的情况下使用“仅限此文件夹”继承来保持继承层次结构完整。在权限层次结构中阻止继承是一个明确的迹象,表明设计的某些内容“损坏”(反转等)。

    • 18
  2. user16680
    2009-08-14T14:42:40+08:002009-08-14T14:42:40+08:00

    首先,感谢您的脚本摘录。我一直在做同样的事情,但被困在不同的地方。在我的 SBS 2008 机器上,下面的代码适用于我(当然,假设它是运行提升的)。我做了一个由操作系统创建的全新(默认)用户文件夹的 icacls %userdir% /t,并在运行此脚本后将其与文件夹的 icacls %userdir% /t 进行比较,它看起来像所有的“O's and我的“是正确的。希望它也对你有用。

    set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
    TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
    ICACLS "E:\Home Directories\%userDir%" /reset /T
    ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(oi)(ci)f
    ICACLS "E:\Home Directories\%userDir%\*.*" /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
    ICACLS "E:\Home Directories\%userDir%\*.*" /inheritance:r
    ICACLS "E:\Home Directories\%userDir%\*.*" /setowner "MYDOMAIN\%userDir%" /T
    ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%" /t
    

    此致,

     -d
    
    • 2
  3. Aman Gupta
    2018-09-19T05:59:52+08:002018-09-19T05:59:52+08:00

    如果技术上可行,我需要您的帮助来根据我的要求修改此命令。

    这是结构

    \Server\Parent\UserA\unix

    \Server\Parent\UserB\unix

    \Server\Parent\UserC\unix.. 等等..

    在每个 User$ 文件夹下都有一个名为“unix”的文件夹。

    我想添加一个对“父”文件夹下列出的所有 User$ 文件夹(名称采用上述结构)具有完全权限的用户或组,但只想排除“unix”文件夹的权限。

    从所需权限的适用性角度来看,我有这个命令对我来说很好,但我不能在其中添加排除功能。

    icacls "\\Server\Parent\UserA" /grant Domain\Group:(OI)(CI)F /T

    你能在这种情况下指导吗?

    • -1

相关问题

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

  • 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