OS X 服务器 (10.6) 上的 ACL 中的数字 UID/GID

OS X 服务器 (10.6) 上的 ACL 中的数字 UID/GID

在一台(旧版 OS X 10.4)服务器上,我将一些具有 ACL 的文件打包成 tar 文件。然后,我使用“tar -xp”将存档文件解压到新的 10.6 服务器上,该服务器上尚未配置任何用户/组,除了默认管理员(UID 501)(这是有原因的,不要问!)。显然,这意味着“ls -lne”将列出具有数字 UID 和 GID 的文件和 ACL。

现在,对于普通文件权限来说,这是有意义的:您会得到像“1037”这样的 UID。对于某些 ACL,这也是有意义的:对于组 (0x402 = GID 1026),您会得到像“AAAABBBB-CCCC-DDDD-EEEE-FFFF00000402”这样的内容,对于用户 (0x1F5 = UID 501),您会得到像“FFFFEEEE-DDDD-CCCC-BBBB-AAAA000001F5”这样的内容。

但是,一些 ACL 具有类似“E51DA674-AE70-41BC-8340-9B06C243A262”的 UID 或类似“0A3FCD24-0012-46FA-B085-88519E55EF29”的 GID,我完全不知道如何将这些 ID 转换回可以与原始 ID 匹配的内容(在此示例中分别为 UID 1072 和 GID 1047)。

有人能帮我翻译这些奇怪的长十六进制字符串吗?

(基本上,我们正在从本地用户转移到 Active Directory 设置,因此我想将所有文件移动到新服务器并保持权限不变,然后 chmod、chgrp 并设置 ACL,以便我们将旧 ID 转换为新的 AD ID。因此需要某种方式在集合之间进行映射。我不相信有更简单的方法可以做到这一点?)

非常感谢,

奥利弗。

答案1

文档中说“计算机生成”这些 UID,因此我认为没有记录在案的算法来在两者之间进行转换。但是,您可以列出用户 ID 和生成的 UID,并创建一个查找表来促进这种转换。

要查找用户的十六进制字符串(除其他外),请使用以下命令:dscl /Search -read /Users/oliver GeneratedUID UniqueID 'dsAttrTypeNative:givenName'

列出所有生成的 UID:

  dscl  /Search -list  /Users GeneratedUID 

列出所有唯一 ID(“正常”uid)

  dscl  /Search -list  /Users UniqueID

希望这些能有所帮助(也许对你不再有帮助,但这会在 Google 中出现,因此其他人可能仍然会发现这很有用)。

我。

相关内容