3

ОБНОВЛЕНИЕ: я обнаружил, что могу просматривать / извлекать с исходными разрешениями, используя флаг --numeric-owner на GNU Tar. Тем не менее, я все еще хотел бы точно понять, что tar делает здесь, так как мне не ясно, тем более, что пользователь "33" действительно существует в системе Ubuntu 16.04.


У меня есть встроенная система под управлением BusyBox v1.01 (2010.02.12-18:03+0000) Встроенная оболочка (ясень).

Я заметил, что когда я создаю tarball (в частности, gzip'd tarball, tgz), владение файлами, похоже, не согласуется между встроенной системой и моей системой Ubuntu 16.04 (с GNU tar 1.28).

Busy Box System:

# touch my_file
# chown 33:0 my_file
# tar -zcvf /mnt/usb/myfile.tgz my_file
# tar -ztvf /mnt/usb/myfile.tgz
-rw-r--r-- 33/0        12 1970-03-18 21:21:39 my_file

Как вы можете видеть, когда я снова смотрю на файл в BusyBox (и действительно, извлекаю его), он имеет 33/0 владение.

Но когда я смотрю на идентичный файл в Ubuntu 16.04, он показывает, что у него есть права root/root:

Ubuntu 16.04:

# tar -tvf myfile.tgz
-rw-r--r-- root/root        12 1970-03-18 17:21 my_file

Конечно, если я извлекаю файл как root, он принадлежит root/root, а не 33/root, как я и ожидал (страница man говорит, что --same-owner используется по умолчанию при извлечении от имени root).

Я никогда не видел такого поведения в tar раньше ... почему право собственности не сохраняется при просмотре файла в Ubuntu?

Кроме того, есть ли способ извлечь файл в Ubuntu, сохраняя при этом исходные разрешения 33/0 от системы BusyBox?

0