Увидеть 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
,