http://www.minasi.com/forum/topic.asp?TOPIC_ID=16842

Basically here's what happens, and why it doesn't get cleaned up. Apologies if some of this is too basic.

1) Accounts and SIDS in a domain: typically you create a user account or a group not locally but on a domain controller. Every user account has a number of characteristics, but the two we're interested in here are:

SID -- Security ID, a UNIQUE identifier for a user account. Looks like S-1-5-21-8989239-232787-1321897-1079 or something like that. The S-1-5-21 shows up on all user accounts, the three big numbers following that are common for all SIDs in a given domain, and the final number (1077) is the only thing about YOUR SID that is different from everyone ELSE's SIDS in the domain.

The important part is that THIS is your true name on the domain.

Friendly Name -- the Microsoft word for what you call yourself. So while I might think that my account name is "mminasi," and if I log in as "mminasi," as far as Windows cares this is nothing more than window dressing, a mildly interesting characteristic about me, like my height, weight, eye color or the like.

2) Permissions:

Permissions are created and stored on the object that they refer to. So, for example, let's say that I've got a DC named DC1 and a member server called MS1. Suppose further that I create a share called STUFF on MS1, and a global group on the domain called COOLGUYS. I want only COOLGUYS to be able to access \\ms1\stuff.

So I go to the MS1 server and tell it either via GUI, NET SHARE or whatever to create an access control entry that says "the global group COOLGUYS has Full Control of the STUFF share."

Let's review what's happened under the hood.

COOLGUYS: this is a thing that lives on DC1, as it's a domain group. It has, let us say, a SID of S-1-5-21-8989239-232787-1321897-1115 and, of course, a friendly name of COOLGUYS.

STUFF share: lives on MS1. Sitting somewhere on MS1 is a piece of information called an "access control entry" or ACE saying "the account with SID S-1-5-21-8989239-232787-1321897-1115 has full control of the STUFF share."

Notice two things there. First, DC1 knows NOTHING about the share. Data on that share, including its permissions, are all stored locally on the member server. Second, the information on MS1 DOES NOT CONTAIN THE FRIENDLY NAME OF COOLGUYS. All it remembers is the SID.

So now let's suppose you decide to fire up Explorer while sitting at MS1 and take a look at the permissions on share STUFF. What happens? MS1 says "dang, that user person wants to see the share permissions, but I'm not supposed to show him that SID thing. Gotta look up the friendly name, so I'll open hailing frequencies to DC1 and ask him... ah, he tells me that it's 'COOLGUYS,' so I'll report that."

But what if DC1 doesn't respond? Then MS1 just shows you the SID next to an empty user head (no jokes here please<g>) with a question mark in the head. Sometimes you will see that change to a normal head and a friendly name before your very eyes, if the network clears up and the member server finally gets the friendly name.

Let's keep "but"-ing...

What if you, the domain admin, delete the COOLGUYS group? Then the object's gone from DC1. Does DC1 give MS1 a heads-up on this? Nope, it can't... remember, the domain basically doesn't know anything about the share, so it couldn't if wanted to. (Yes, you can publish a share in AD but that doesn't change things.)

So now what happens when you go to look at the permissions on \\MS1\STUFF? Simple: MS1 asks DC1 for S-1-5-21-8989239-232787-1321897-1115's friendly name, and never gets an answer. Result: empty heads.

Subinacl will optionally do a friendly name lookup for every ACE on a system, and delete any ACEs that cannot produce a friendly name. Clearly you should only do this when the connectivity to the DC is good!<g>

Again, sorry if some of that was basic but I hope it helped someone.

共享权限ACL列表出现SID现象的更多相关文章

  1. icacls备份与还原ACL列表(NTFS权限)--Robocopy

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

  2. NTFS权限和共享权限的区别

    共享权限 共享权限有三种:完全控制.更改.读取 共持本地安全性.换句话说,他在同一台计算机上以不同用户名登录,对硬盘上同一文件夹可以有不同的访问权限. 注意:NTFS权限对从网络访问和本机登录的用户都 ...

  3. Windows网络共享权限设置

    文件共享权限有两种权限设置,只要理解这两种权限设置就可以在域控灵活运用. 第一种是网络共享权限 共享权限是控制用户通过网络访问共享文件夹的手段,共享权限仅当用户通过网络访问时才有效,本地用户不受此权限 ...

  4. linux用户权限 -> ACL访问控制

    UGO设置基本权限: 只能一个用户,一个组和其他人 ACL设置基本权限: r.w.x 设定acl只能是root管理员用户. 相关命令: getfacl , setfacl facl权限 简介 facl ...

  5. ntfs安全权限和共享权限的区别

    win xp 最大分区32G,最大文件大小4G. 共享权限是为网络用户设置的,NTFS权限是对文件夹设置的. 用户对文件夹有什么权限就是看NTFS权限的设置. 如果一个文件夹设置成共享,其具体的权限还 ...

  6. 文件服务器的详细配置之共享权限与NTFS权限的设置

       文件服务器的详细配置之共享权限与NTFS权限的设置    在大中型企业中,一般而言所谓文件服务器是指共享文件夹,即对共享权限与NTFS权限的设置!当然这也是我们搞网络者必须会的,是必经之路!我旨 ...

  7. Android常用权限permission列表摘录

    一个Android应用程序需要权限才能调用某些android系统的功能:一个android应用也可能被其他应用调用,因此也需要声明调用自身所需要的权限.除了平时常用的权限记得比较熟悉,还有很多的权限一 ...

  8. ACL权限控制列表

    1.查看文件系统是否支持ACL (xfs文件系统强制开启ACL,如果该分区已格式化为xfs,在使用dumpe2fs会看不到superblocks信息)zheng@ubuntu16:~$ sudo du ...

  9. FreeNAS:创建 CIFS 共享(权限)

    第一部分:新建账户与指定数据集权限 简单起见,本教程主要介绍带基本身份验证的 CIFS 共享,即只有输入正确的用户名和密码才可以访问共享目录.关于创建匿名共享.多用户权限管理以及域控制器相关内容,我们 ...

随机推荐

  1. 快速排序原理及Java实现

    1.基本思想: 快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的.快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较 ...

  2. 基于Memcached的tomcat集群session共享所用的jar

    多个tomcat各种序列化策略配置如下:一.java默认序列化tomcat配置conf/context.xml添加<Manager className="de.javakaffee.w ...

  3. Lua date转秒数

    之前写过一篇关于把秒转换成指定的日期格式 Lua date format   接到一个需求,需要从配置文件中读取活动显示时间段:startDate ~ endDate(格式为:yyyy-mm-dd H ...

  4. Java并发编程的艺术(一)——并发编程需要注意的问题

    并发是为了提升程序的执行速度,但并不是多线程一定比单线程高效,而且并发编程容易出错.若要实现正确且高效的并发,就要在开发过程中时刻注意以下三个问题: 上下文切换 死锁 资源限制 接下来会逐一分析这三个 ...

  5. 多个类定义attr属性重复的问题:Attribute "xxx" has already been defined

    有时候做自定义控件时就会遇到命名冲突,改变有冲突的名字自然是最直接有效的方式,但是感觉很傻.我搜了下别人的解决方案,觉得很值得借鉴.就是把重名的属性,独立出来写一下,然后在定义时直接写属性名字即可. ...

  6. 用ArrayAdapter来创建Spinner(自定义布局、默认布局、动态内容、静态内容)

             android:dropDownWidth 下拉列表宽度 android:dropDownHorizontalOffset 下拉列表距离左边的距离 android:dropDownV ...

  7. SVG.js 引用获取整理

    一.SVG.get() 根据id获取元素 var draw = SVG('svg1').size(300, 300); var circle = draw.circle(50); circle.fil ...

  8. Visual Studio Code compile error - launch.json must be configured...

    一.在最初使用VS Code创建控制台应用时, 使用VS Code调试工具默认会跑出异常: launch: program 'launch: launch.json must be configure ...

  9. Java中线程池,你真的会用吗?

    在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建 ...

  10. vim去除行显示;vim全部复制命令

    行显示和隐藏: set nu set nu! 直接上命令: ggVG*y 解释一下上面的命令: ggVG   ——全选 *y  —— 复制到剪贴板 gg 是光标定位到文件首行 V  是进入可视模式 G ...