Доброго времени суток господа.Сжимаю таром с опциями tar -cjpPf xxx.tar.bz2 -T files.lst, причем условие делать это от рута.
Теперь если ченить удалить из сжатых файлов и распаковать архив то у удаленной папки и вложеных элементов права ставятся в рута, что ни есть гуд.
А если не удалять, а накатить архив поверх ужесуществующих элементов то с правами все гуд.
Вчем может быть дело?
Я так полагаю что это все из-за -T files.lst, если сжемать целиком диру то вроде все норм.
Может кто все таки поможет, гуру АУ.
Неплохо было бы версию тара хотя бы сказать. Gnu и BSD tar очень отличаются.
Если GNU, то посмотрите на опцию --same-owner, оно конечно по умолчанию должно быть включено для рута, но мало ли.
>Неплохо было бы версию тара хотя бы сказать. Gnu и BSD tar
>очень отличаются.
>Если GNU, то посмотрите на опцию --same-owner, оно конечно по умолчанию должно
>быть включено для рута, но мало ли.CNU 1.20 и GNU 1.19
Ну люди блин че никто backup'ы не делает я уже всю голову сламал с этим таром.
Помогайте
angra@Falcon:~$ cd /tmp
angra@Falcon:/tmp$ mkdir test
angra@Falcon:/tmp$ touch test/a test/b
angra@Falcon:/tmp$ echo -e 'test/a\ntest/b' >files.lst
angra@Falcon:/tmp$ cat files.lst
test/a
test/b
angra@Falcon:/tmp$ ls -l test
итого 0
-rw-r--r-- 1 angra angra 0 Мар 27 20:26 a
-rw-r--r-- 1 angra angra 0 Мар 27 20:26 b
angra@Falcon:/tmp$ sudo bash
root@Falcon:/tmp# id
uid=0(root) gid=0(root) группы=0(root)
root@Falcon:/tmp# tar -cjpPf xxx.tar.bz2 -T files.lst
root@Falcon:/tmp# rm -rf test
root@Falcon:/tmp# ls test
ls: невозможно получить доступ к test: Нет такого файла или каталога
root@Falcon:/tmp# tar -jxPf xxx.tar.bz2
root@Falcon:/tmp# ls -l test/
итого 0
-rw-r--r-- 1 angra angra 0 Мар 27 20:26 a
-rw-r--r-- 1 angra angra 0 Мар 27 20:26 b
root@Falcon:/tmp# tar --version
tar (GNU tar) 1.20
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.Written by John Gilmore and Jay Fenlason.
Ищите что ВЫ делаете не так.
Спасибо за внимание но я выше немного не точно написал, все касается прав на директории.сделайте все тоже самое но последнее действие:
ls -ld test/
или
ls -l /tmp | grep testи удивитесь :-)
а че за дистр у вас?
angra АУ
>angra АУв file.list велючите и каталог test...
тогда права и на каталог сохраняться
>>angra АУ
>
>в file.list велючите и каталог test...
>
>тогда права и на каталог сохранятьсяСпасибо, я уже это попробовал.
Не подходит file.list создается как раз с той целью чтобы заархивировать именно нужные файлы, укажу папку он сожмет все в ней.Да, да я знаю про --exclude но я им пользуюсь до создания file.list
Должен же быть какойто способ
>[оверквотинг удален]
>>тогда права и на каталог сохраняться
>
>Спасибо, я уже это попробовал.
>Не подходит file.list создается как раз с той целью чтобы заархивировать именно
>нужные файлы, укажу папку он сожмет все в ней.
>
>Да, да я знаю про --exclude но я им пользуюсь до создания
>file.list
>
>Должен же быть какойто способЕсли Вам нужны "только файлы" то Вы их и получаете с нужными правами.
А с папками работайте отдельно, если надо...Ну может еще такой вариант подойдет.
files.lst - список фйалов
dirs.lst - список папок.
сначала сделать tar c... -T dirs.lst -X files.lst (создание архива только папок, без файлов)
tar c... -T files.lst
...
tar x... dirs.tbz
tar x... files.tbzно на самом деле все зависит от задачи. Под конкретную задачу вполне можно написать соответственный скриптик...