Eu tenho dois arquivos em um diretório. Um tem permissões corretas e o outro não. Existe uma maneira de "copiar" o conjunto de permissões de um arquivo para outro?
unix
permissions
file-management
Svish
fonte
fonte
--reference
opção está incluída na versão GNU; O OSX provavelmente usa um chmod que se origina no BSD. OSX man chmod : developer.apple.com/Mac/library/documentation/Darwin/Reference/…cp -dpR <source-file> <dest-file>
a vontade, ao copiar um arquivo, copiar permissões, bem como a file.rEu vim com isso:
Não é totalmente à prova de balas, mas faz o que eu preciso.
fonte
tente isto:
find /PATH/TO/TARGET -exec chmod --reference /PATH/TO/SOURCE/{} {} \;
isso aumentaria recursivamente e chmod todos os arquivos, se dois diretórios não corresponderem aos arquivos, você verá muitos erros "Não existe esse arquivo ou diretório".
fonte
find /home/myubuntuuser/Desktop/test1 -exec chmod --reference /home/myubuntuuser/Desktop/test2/{} {} \;
Você pode usar
getfacl
para recuperar a lista completa de permissões de arquivo, proprietário, grupo e ACLs adicionais (listas de controle de acesso).Se você salvar essa saída em um arquivo (por exemplo
acl.txt
), poderá restaurar a partir deste formato comsetfacl --restore acl.txt
. Se você quiser restaurar apenas um único arquivo, e esse arquivo tiver um nome de arquivo diferente do original, será recomendável usá-losetfacl --set-file acl.txt filename.txt
(ondefilename.txt
está o novo nome do arquivo).Passos
Salve as permissões originais para
acl.txt
:Sobrescrever permissões (para demonstração; isso é apenas para que você possa ver que a restauração na próxima etapa funciona)
Use
setfacl
para restaurar as permissões corretas deacl.txt
:O nome do arquivo é obtido no
# file:
comentário gerado porgetfacl
, portanto, não há necessidade de especificá-lo na linha de comando.Se você deseja restaurar essas permissões para um arquivo diferente, use em
--set-file
vez de--restore
:Exemplo
Se você acabar substituindo as permissões em alguns arquivos
/usr
, mas não souber quais arquivos foram substituídos, geralmente poderá corrigi-lo restaurando a partir de outro sistema configurado da mesma forma.Permissões de backup do sistema em funcionamento (nota:
getfacl
gera caminhos relativos, portanto, garantacd
um local consistente nas duas máquinas)Copie o dump da ACL para o sistema com permissões quebradas
Restaure o despejo da ACL para substituir as permissões quebradas pelas da máquina válida
fonte