在Windows Server 系统中根据用户对文件夹设置访问权限设置的方法

本文介绍如何使用Xcacls命令行工具来设置Windows系统中的NTFS权限,包括递归设置文件夹权限、授予特定用户访问权限、查看当前权限设置等。同时还提供了几个实用的Xcacls命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:在系统中有两个用户,1)Administrator,2)userA

现在需要设置硬盘中的文件夹的访问权限,userA只能访问指定的文件夹。需要怎么办?

使用windows 原生命令:Xcacls 即可。


---------------------------------------------------------------------------------------------------------------------------------------------------

Xcacls.exe 语法
xcacls 文件名 [/T] [/E] [/C] [/G user:perm;spec] [/R 用户] [/P user:perm;spec [...]] [/D 用户 [...]] [/Y]
其中文件名表示 ACL 或访问控制项 (ACE) 通常应用于的文件或文件夹的名称。所有标准通配符均可使用。

/T 递归检查当前文件夹及其所有子文件夹,对匹配的文件或文件夹应用所选的访问权限。

/E 编辑 ACL 而不替换它。例如,如果您运行 XCACLS test.dat /G Administrator:F 命令,则只有管理员拥有对 Test.dat 文件的访问权限。之前应用的所有 ACE 都会丢失。

/C 使 Xcacls.exe 在出现“拒绝访问”错误消息时继续执行。如果未指定 /C,则 Xcacls.exe 在出现此错误时停止执行。

/G user:perm;spec 授予用户对匹配文件或文件夹的访问权限。
perm(权限)变量对文件应用指定的访问权限,并代表文件夹的特殊文件访问权限掩码。perm 变量接受下列值:
R 读取
C 更改(写入)
F 完全控制
P 更改权限(特殊访问权限)
O 取得所有权(特殊访问权限)
X 执行(特殊访问权限)
E 读取(特殊访问权限)
W 写入(特殊访问权限)
D 删除(特殊访问权限)
spec(特殊访问权限)变量仅应用于文件夹,它除了接受与 perm 相同的值以外,还接受以下特殊值:
T 未指定。为目录本身设置 ACE,而不指定应用于在该目录中创建的新文件的 ACE。至少存在一个要遵循的访问权限。分号 (;) 和 T 之间的项将被忽略。注意:
文件的访问权限选项(针对文件夹、特殊文件和文件夹访问)是完全相同的。有关这些选项的详细说明,请参阅 Windows 2000 操作系统的文档。
所有其他选项(它们也可以在 Windows 资源管理器中设置)都是基本访问权限的所有可能组合的子集。因此,不存在文件夹访问权限(如 LIST 或 READ)的特殊选项。
/R 用户为指定用户调用所有访问权限。

/P user:perm;spec 替换用户的访问权限。指定 perm 和 spec 的规则与 /G 选项相同。请参阅本文的“Xcacls.exe 示例”部分。

/D 用户拒绝用户访问文件或目录。

/Y 禁止在替换用户访问权限时出现确认提示。默认情况下,CACLS 要求确认。由于存在此功能,在批处理例程中使用 CACLS 时,例程将停止响应并等待输入正确答案。引入 /Y 选项后可消除此确认,从而可以在批处理模式下使用 Xcacls.exe。

使用 Xcacls.exe 查看权限
Xcacls.exe 还可用于查看文件或文件夹的权限。例如,在命令提示符处键入 xcacls C:\winnt,然后按 Enter。下面是典型结果:
c:\WINNT BUILTIN\Users:R
BUILTIN\Users:(OI)(CI)(IO)(special access:)
GENERIC_READ
GENERIC_EXECUTE

BUILTIN\Power Users:C
BUILTIN\Power Users:(OI)(CI)(IO)C
BUILTIN\Administrators:F
BUILTIN\Administrators:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
BUILTIN\Administrators:F
CREATOR OWNER:(OI)(CI)(IO)F

这些 ACL 标志具有下列含义:
IO:仅继承 — 此标志表示此 ACE 不应用于当前对象。
CI:容器继承 — 此标志表示从属容器将继承此 ACE。
OI:对象继承 — 此标志表示从属文件将继承该 ACE。
NP:不传播 — 此标志表示从属对象不继续传播继承的 ACE。
每行末尾的字母表示权限。例如:
F:完全控制
C:更改
W:写入
Xcacls.exe 示例
示例 1
在命令提示符下键入 XCACLS *.* /G administrator:RW /Y,然后按 Enter 以替换当前文件夹中所有文件和文件夹的 ACL,而不扫描子文件夹且不进行确认。
示例 2
在本示例中,添加到文件夹的 ACE 还将继承在此文件夹中创建的新文件的 ACE。该命令授予 TestUser 对此文件夹中的所有新建文件的读取、写入、运行和删除权限,但只授予对文件夹本身的读写权限。在命令提示符下键入 XCACLS *.* /G TestUser:RWED;RW /E,然后按 Enter。
示例 3
下面的示例将授予对文件夹的读写权限,而不为新文件创建继承项。因此,在本示例中,此文件夹中的新建文件不会收到 TestUser 的 ACE。对于现有文件,将创建具有读取权限的 ACE。在命令提示符下键入 XCACLS *.* /G TestUser:R;RW /E,然后按 Enter。

NTFS 权限原则
下面是分配 NTFS 权限的原则:
使用 NTFS 权限控制对文件和文件夹的访问。
将权限分配给组而不是单独用户。
NTFS 文件权限优先于 NTFS 文件夹权限。
管理员以及文件或文件夹的所有者控制可为该对象设置的权限。
在更改文件夹权限时,应了解服务器上安装的程序。程序会创建自己的文件夹并打开“允许从父系来的继承权限传播到这个对象”设置。如果更改了父文件夹中的权限,则这些更改可能会导致程序中出现问题。

警告:请记住,许多文件和文件夹通过继承接收权限。因此,在您认为只是更改了一个文件夹时,您可能更改了其他更多内容。

---------------------------------------------------------------------------------------------------------------------------------

http://support.microsoft.com/kb/318754/zh-cn

http://msdn.microsoft.com/zh-cn/magazine/cc982153.aspx

### 如何在 Linux 上安装 RabbitVCS #### 添加 PPA 和更新源 为了确保能够获取最新的 RabbitVCS 版本,在 Ubuntu 或基于 Debian 的系统中,可以添加官方的 PPA 源。运行以下命令来添加 PPA 并更新软件包列表: ```bash sudo add-apt-repository ppa:rabbitvcs/ppa sudo apt-get update ``` #### 安装核心组件和依赖项 RabbitVCS 需要一些基础库和支持工具才能正常工作。以下是完整的依赖项安装命令: ```bash sudo apt-get install python-nautilus python-configobj python-gtk2 python-glade2 python-svn python-dbus python-dulwich subversion meld ``` 这些依赖项提供了 Nautilus 文件管理器集成、配置文件支持以及 SVN/Diff 工具等功能[^4]。 #### 安装 RabbitVCS 主程序 根据具体需求,可以选择不同的模块进行安装: 1. **Nautilus 支持(GNOME 3 用户)** 如果使用 GNOME 3 环境,则需安装 `rabbitvcs-nautilus3`: ```bash sudo apt-get install rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus3 ``` 2. **Thunar 支持(Xfce 用户)** 对于 Xfce 桌面环境中的 Thunar 文件管理器,还需要额外安装以下内容: ```bash sudo apt-get install thunarx-python rabbitvcs-thunar ``` 3. **其他桌面环境** 若未使用上述两种桌面环境,仅需安装 CLI 和核心功能即可: ```bash sudo apt-get install rabbitvcs-cli rabbitvcs-core ``` #### 启动服务并验证安装 完成安装后,建议重新启动计算机或注销当前会话以使更改生效。之后可以在文件管理器右键菜单中找到 VCS 功能选项[^1]。 对于某些较新的发行版(如 Ubuntu 20.04),可能只需简单执行以下命令即可快速部署 RabbitVCS[^3]: ```bash sudo apt-get install rabbitvcs-nautilus sudo reboot ``` --- #### CentOS/RHEL 系统上的安装方法 如果目标操作系统为 CentOS 或 RHEL 类型,可以通过 YUM 软件包管理器手动下载所需 RPM 包并逐一安装。例如: ```bash yum -y install nautilus nautilus-python python-dbus epel-release-latest-7.noarch.rpm meld pysvn python-dulwich python-simplejson rpm -Uvh rabbitvcs-core-*.noarch.rpm rabbitvcs-cli-*.noarch.rpm rabbitvcs-nautilus-*.noarch.rpm ``` 注意替换具体的 `.rpm` 文件路径以匹配实际版本号[^5]。 --- ### 注意事项 - 不同发行版间可能存在细微差异,请参照各自文档调整指令集。 - 确认已启用第三方仓库(PPA 或 EPEL),否则可能导致部分软件无法检索到最新稳定版。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值