Назад | Перейти на главную страницу

Untar с рутом: можно ли установить uid?

Можно ли указать tar распаковать архив и установить для uid / gid определенный, когда вы запускаете tar от имени пользователя root (при использовании chef)?

То, что я уже знаю:

Было бы очень удобно иметь возможность указывать владельца при распаковке. Это возможно ?

Как ни странно, вы можете приблизиться к тому, что хотите, используя (GNU) cpio с вашим tar-архивом. GNU cpio поддерживает файлы формата tar и предоставляет -R параметр командной строки для установки пользователя и группы извлеченных файлов. Эта опция контролирует право собственности на все файлы, а не конкретные файлы.

Все это означает, что вы можете запускать от имени пользователя root следующую команду ...

cpio -iv -R user1:group1 < /path/to/myarchive.tar

... и он извлечет все файлы, принадлежащие пользователю user1 и группа group1.

Вы можете запустить ресурс выполнения chef от имени конкретного пользователя:

execute "tar -xf /path/to/your/tarfile.tar" do
  user "someone"
end

Выполнить ресурсную документацию