No Mac OS X Snow Leopard, como as permissões de um arquivo podem ser correspondidas a outro?

3

Eu preciso que as permissões de um arquivo correspondam exatamente às permissões de outro arquivo no OS X 10.6.

Eu não vejo 'getfacl' ou 'setfacl' como sugerido em outros posts para Linux. E, não parece chown / chmod tem uma opção --referência no Snow Leopard.

Qual é o equivalente no Mac?

    
por leanne 03.02.2012 / 19:48

4 respostas

2

OK, então, para uma cópia direta da ACL, não consigo ver um único comando. No entanto, você pode colocar isso em um script ou função:

ls -le source | sed -En '/^ [[:digit:]]+: / { s/^ [[:digit:]]+: //; p; }' | chmod -E dest

por exemplo,

function copyacl()
{
  ls -le "$1" \
    | sed -En '/^ [[:digit:]]+: / { s/^ [[:digit:]]+: //; p; }' \
    | chmod -E "$2"
}

$ copyacl sourcefile destfile

Eu sinto que o script sed pode ser melhorado, mas parece que faz o trabalho.

    
por 07.03.2012 / 02:07
1

Use ls -le para ver quaisquer ações que um arquivo tenha associado a ele.

Use chmod para alterar ou remover os acls. Há muitos exemplos no final da página do manual chmod para guiá-lo.

O Mac OS tem um conjunto separado de sinalizadores de acesso a arquivos, aparentemente herdados dos BSDs. Você pode ver aqueles com ls -lO (isso é traço ell oh) e modificá-los com chflags .

    
por 03.02.2012 / 20:40
1

Este funciona:

chmod 'stat -f %A srcFile' dstFile
    
por 29.09.2015 / 13:29
0

Não tenho certeza se você pergunta sobre as permissões padrão do UNIX ou sobre as ACLs. Muitas versões de chmod têm uma opção --reference para obter as permissões de outro arquivo:

chmod --reference=~/backup/file ~/newfile

Mas você precisa verificar as opções de chmod no seu Mac:

chmod --help
    
por 04.03.2012 / 21:21