TAR-файл с сохраненными разрешениями Отображает имя пользователя для пользователя не в текущей системе

Вы можете легко сделать это с помощью synclient:

$ synclient VertScrollDelta=-70
$ synclient HorizScrollDelta=-70
1
31.08.2018, 08:24
2 ответа

Tar также сохраняет имя пользователя и группы в файле. Вы можете убедиться в этом, взглянув на сам tar-файл с помощью таких инструментов, как hexdump. Причина в том, что одно и то же имя может использоваться в разных системах, но с разными номерами.

Во втором случае исходная система не знает имени пользователя 33, поэтому она не может предоставить имя, только номер. Извлекающий tar использует этот номер, и поскольку система знает этот номер, она отображает имя пользователя для этого номера.

См. также

--numeric-owner
Always use numbers for user/group names.

0
27.01.2020, 23:42

Это связано с тем, что tarтакже сохраняет эту информацию, это формат ustar, указанный в POSIX 1003.1 -1990. В официальном исходном коде это указано в заголовочном файле tar.h . Я скопировал важный блок:

/* POSIX header.  */

struct posix_header
{               /* byte offset */
  [...]
  char uid[8];          /* 108 */
  char gid[8];          /* 116 */
  [...]
  char uname[32];       /* 265 */
  char gname[32];       /* 297 */
  [...]
};

Как видите, имя пользователя-владельца, а также имя группы-владельца хранятся помимо uid и gid.

1
27.01.2020, 23:42

Теги

Похожие вопросы