Como copiar as permissões de um arquivo para outro?

Como copiar as permissões de um arquivo para outro?

Digamos que eu tenha dois arquivos:

-rw-rw-r--  1 webapp webapp   215 Jun 21  2012 index.php
-rw-rw-rw-  1 root   root      58 Dec 17 11:02 patch.log

Eu gostaria de dar patch.logas mesmas permissões que index.php.

Eu posso fazer isso manualmente:

chown webapp:webapp patch.log
chmod 664 patch.log

Mas isso deve fazer parte de um script, onde não sei necessariamente quais index.phpsão as permissões exatas.

Existe uma maneira de copiar as permissões de um determinado arquivo para outro arquivo?

Responder1

Você pode usar um arquivo como arquivo de referência para chown e chmod

chown --reference=index.php patch.log
chmod --reference=index.php patch.log

Está tudo nas páginas de manual, aliás

chown

--reference=RFILE usa o proprietário e grupo de RFILE em vez de especificar valores OWNER:GROUP

chmod

--reference=RFILE usa o modo RFILE em vez dos valores MODE

Responder2

Se houver alguma possibilidade de ACLs estendidas nos arquivos em questão, é melhor usar getfacl/setfacl:

getfacl index.php | setfacl --set-file=- patch.log

informação relacionada