Oamc

共享文件夹权限(共享 + NTFS)

本页目录

场景

新建一个部门共享盘,只有本部门能读写,其他人只读或者看不到。

前置条件

  • 服务器上建好目录
  • 域里已经有对应的安全组(推荐按组授权,不按人)
  • 知道最终权限取共享权限和 NTFS 权限的交集

配置

# 目录
New-Item -ItemType Directory -Path D:\share\finance -Force

# 共享(共享权限给「所有人」完全控制,实际靠 NTFS 收口)
New-SmbShare -Name "finance" -Path D:\share\finance -FullAccess "Everyone"
# 或者更稳妥:共享权限只给 Domain Admins
Grant-SmbShareAccess -Name "finance" -AccountName "CORP\Domain Admins" -AccessRight Full -Force

# NTFS:部门组读写,管理员完全控制,其他不给
icacls D:\share\finance /inheritance:r
icacls D:\share\finance /grant "CORP\Domain Admins:(OI)(CI)F"
icacls D:\share\finance /grant "CORP\GRP-Finance:(OI)(CI)M"
icacls D:\share\finance /remove "CORP\Domain Users"

验证

Get-SmbShare -Name "finance"
Get-SmbShareAccess -Name "finance"
icacls D:\share\finance

用普通账号实际访问一次:

net use Z: \\fs01\finance /user:CORP\testuser

回滚

Remove-SmbShare -Name "finance" -Force

NTFS 权限用 icacls 恢复,或者从父目录重新继承:

icacls D:\share\finance /inheritance:e

坑

  • 共享权限和 NTFS 取交集,两边都放行才通,常见错误是共享给了但 NTFS 没给。
  • Everyone 包含匿名,能用 NYSD 就用,别图省事。
  • 权限按组授,组里加人就行,别一个个加用户。
  • 用户登录后组变更要重新登录才生效,或者 klist purge。
  • 打开「基于访问的枚举」后,没权限的文件夹直接不可见,比只读更干净。
  • 迁移目录时 robocopy /COPYALL 才能带上 ACL,普通复制会丢权限。