![OS X 服务器 (10.6) 上的 ACL 中的数字 UID/GID](https://linux22.com/image/500111/OS%20X%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20(10.6)%20%E4%B8%8A%E7%9A%84%20ACL%20%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%97%20UID%2FGID.png)
在一台(旧版 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 中出现,因此其他人可能仍然会发现这很有用)。
我。