Como eu quero fornecer ajuda para esse problema, eu escrevi um pequeno Bash-Script para corrigir permissões de arquivo com base nos MTREE's ...
%pr_e%
Uso:
fix-permissions --all - para corrigir todas as permissões do FS inteiro correção de permissão "/ var / lib / pacman / local / PKGNAME - para corrigir apenas este mtree
Off-Topic:
Aqui: CLIQUE EM MIM você pode encontrar uma solução codificada em C, que é MUITO rápida, em seguida, Bash-Version ...
Uso:
use-mtree /path/to/*/mtree
O SourceCode está disponível Aqui ... e aqui (os cabeçalhos necessários estão disponíveis no meu site):
%pr_e%
/ *******************************************
*! Copyright (C) 2018
*! Marcel Bobolz
*
* $ Copiando e distribuindo este arquivo, com ou sem modificação,
* $ são permitidos em qualquer meio sem royalty desde que os direitos autorais
* $ notice e este aviso são preservados. Este arquivo é oferecido como está,
* $ sem qualquer garantia.
*
*
* @ Code-Information:
*
* = > % MTree-Parser
*
******************************************* /
#include <xstdarchive.h
>
__ atributo __ ((flatten)) __bool_t main (__ i32_t ArgC, __charr_t ArgV) { ArgC--; ArgV ++; __u64_t BytesRead = ZERO; estático __file_t PFile; estático __uch_t MTreeBuf [BUF1MB]; foreach (ArgV) { ((PFile = popen (StrForm ("% s% s", "gzip -cd", * ArgV), "r")) == NULL)? \ (saída (ERRO)): (BytesRead = fread (MTreeBuf, UM, BUF1MB - UM, PFile)); (BytesRead > ZERO)? (pclose (PFile)): (exit (ERROR)); MTreeBuf [BytesRead] = ZERO; ArchiveListArchive (((__str_t) MTreeBuf), 'x'); memset (MTreeBuf, ZERO, BUF1MB); PFile = NU (__ file_t); } retorno (SUCESSO); }