Можно ли указать tar распаковать архив и установить для uid / gid определенный, когда вы запускаете tar от имени пользователя root (при использовании chef)?
То, что я уже знаю:
-o
извлечь как root, затем chown uid:gid
потом--owner
и --group
видимо работает только при добавлении файла, а не при распаковкеБыло бы очень удобно иметь возможность указывать владельца при распаковке. Это возможно ?
Как ни странно, вы можете приблизиться к тому, что хотите, используя (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