Увидеть Unix-идентификаторы в macOS

У меня есть снимок 900-го идентификатора пользователя из миллиона файлов старого файлового сервера Unix. На Linux я могу просматривать его и иметь ls -l показать имена пользователей из снимка /etc/passwd, просто chroot'ing в верхний каталог снимка.

Я скопировал этот снимок на USB-диск в формате exFAT, чтобы отправить его пользователю Mac. Но в macOS мой трюк с chroot может не отображать имена пользователей, потому что они приходят из DirectoryService вместо /etc/passwd. (Он не будет добавлять 900 пользователей на свой Mac и не будет устанавливать на него Linux.)

Как он может просматривать эти имена пользователей в списках файлов?

Или ему придется трубу ls -ln через пользовательский скрипт, который заменяет uid/gid на имена в этом файле паролей?

1 ответ

Решение

Я думаю, что вы можете найти tar полезно. Я тестировал GNU tar на Debian и Ubuntu. У меня нет доступа к Mac, его tar может быть не так, чтобы достичь с вариантами. Тем не менее, я думаю, что вы сможете получить некоторые идеи из моего ответа.

tar -xf archive.tar mountpoint/ будет хранить владельцев файлов / группы в основном как символьные строки, если вы не используете --numeric-owner, Есть несколько других вариантов, которые вы, конечно , не хотите использовать, например, --owner=,

В целевой системе распаковка архива может повлиять на информацию о владельце, и это будет в вашем случае. Но вы можете просматривать исходных пользователей / групп с

tar -tvf archive.tar

или например

tar -tvf archive.tar path/to/object1/within/archive path/to/object2

Если большой снимок уже был отправлен, и вы не хотите отправлять другой большой файл, другой пользователь может попытаться создать archive.tar с помощью --owner-map= подключить числовые идентификаторы UID из снимка к произвольным именам, предоставленным вами (или /etc/passwd снимка). Требуется некоторое усилие, чтобы построить файл карты. Я также боюсь, что это не будет работать с группами.

В этом случае скопируйте только метаданные (в вашей системе):

cp -a --attributes-only mountpoint/ whatever

а также tar результирующие пустые файлы:

tar -xf metadata.tar whatever/

послать metadata.tar другому пользователю (gzip это может быть, чтобы уменьшить размер). Для просмотра информации о владельце они должны запустить tar -tvf metadata.tar,

Другие вопросы по тегам