Я спостерігаю таку поведінку як з дьогтом 1.26 та 1.27.1:
$ mkdir a b a/diffowner
$ sudo mkdir b/diffowner
$ sudo chmod a+w b/diffowner
$ echo foo > a/diffowner/foo
$ tar -C a -cvf test.tar diffowner
diffowner/
diffowner/foo
$ tar -C b -xvf test.tar diffowner
diffowner/
diffowner/foo
tar: diffowner: Cannot utime: Operation not permitted
tar: diffowner: Cannot change mode to rwxr-xr-x: Operation not permitted
tar: Exiting with failure status due to previous errors
Тому я намагаюся тут зробити витяг файлу tar в існуючу структуру каталогів, де я не є власником усіх задіяних каталогів, але я маю дозвіл на запис для всіх. Насправді вони поділяються між групою.
Мені не хвилюються часові позначки, і я вірю, що дозволи мають бути вже правильними. Я запускаю це як звичайний користувач, тому не слід намагатися, --preserve-permissions
якщо цього не скажуть, чого я не робив. Що мене насправді хвилює, це статус виходу: я маю намір використовувати це у сценарії та хочу знати, чи справді видобуток спрацював добре.
Чи є опція tar, яка вказує їй не встановлювати дозволів каталогів, ні негайно, ні затримуватись? Якщо цього не зробити, які інші рішення ви б запропонували. Зараз я думаю про витяг у тимчасовий каталог та використання rsync
для переміщення матеріалів у існуюче дерево. Але, можливо, ви знаєте менш хакітний підхід.