Вынудите владельца и группу для содержания файла tar?

Выезд stderred. Это использует LD_PRELOAD сцепляться с libc write() вызовы, колоризация все stderr вывод, идущий в терминал. (В красном по умолчанию.)

21
12.01.2013, 01:45
3 ответа

Linux не использует внутренне владельцев и имена групп, но числа - UIDs и ЦЕНУРОЗЫ. Пользователи и имена групп отображаются от содержания/etc/passwd и/etc/group файлов для удобства пользователя. Так как у Вас нет 'otherowner' записи ни в одном из тех файлов, Linux на самом деле не знает, который UID и GID должны быть присвоены файлу. Давайте попытаемся передать число вместо этого:

$ tar cf archive.tar test.c --owner=0 --group=0
$ tar -tvf archive.tar 
-rw-rw-r-- root/root        45 2013-01-10 15:06 test.c
$ tar cf archive.tar test.c --owner=543543 --group=543543
$ tar -tvf archive.tar 
-rw-rw-r-- 543543/543543    45 2013-01-10 15:06 test.c

Это, кажется, работает.

19
27.01.2020, 19:43
  • 1
    Интересный! Таким образом, команда tar должна опрашивать систему относительно пользователя и чисел группы для соответствия именам, которые я пытался использовать.Спасибо! ре –  David 14.01.2013, 17:10
  • 2
    примечание для других, сталкивающихся с этим: tar автоматически выходной пользователь/названия группы при использовании -tvf флаги. Для просмотра текущих чисел для файлов в архиве используют команду как это: $ tar --numeric-owner -tvf archive.tar –  David 14.01.2013, 17:23
  • 3
    На самом деле с моей версией tar я могу ввести любое имя пользователя, которое я хотел бы и хранить ее в файле tar (но с моим числовым идентификатором пользователя по умолчанию). В то время как список Вас получает имена пользователей по умолчанию, но идентификаторы пользователей с помощью --numeric-owner флаг. То, что более интересно, - то, что можно установить оба использования --owner=name:1234 или --group=groupname:4711. Источник: функционируйте parse_owner_group Выполнения исходного кода –  Bluehorn 02.02.2017, 20:25

Вот кусок кода для замены пользователя/группы на ids на лету:

tar ca --owner="$(id -u ***otherowner***)" --group="$(id -g ***othergroup***)" mydata.tgz mydata
-2
27.01.2020, 19:43

Добавьте параметры --no-same-owner --no-same-permissionsс tar. Взгляните на документацию .

1
27.01.2020, 19:43

Теги

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