Permissões de aplicação inconsistentes

0

Alterando permissões em um script depois de instalar determinados aplicativos (Linux e OSX), achei o seguinte muito confuso.

A criação de um ".app" no OSX requer a colocação de um diretório com vários arquivos (aplicativos, recursos, bibliotecas) no diretório / Aplicativos, com permissões de root. O aplicativo pode ser retirado de um CD ou de uma rede, o que significa que suas permissões realmente não são o que eu preciso. O aplicativo precisará de permissões executáveis, assim como as bibliotecas, enquanto alguns itens podem ser apenas "r", não "x". Eu não estou tocando as permissões "w" - aqui não deve ser nenhuma.

chmod -R +rx /Applications/myApp

faz isso perfeitamente, para todos os diretórios internos (e sim, alguns itens receberão permissão + x quando não precisarem deles, mas não importa).

Para Linux e OSX: estou salvando (imprimindo em arquivo) alguns arquivos em /tmp/company/product . Então, durante a instalação, eu também adicionei

chmod -R +rw /tmp/company

O resultado foi

rwx r-x r-x

Acabei de aplicar as permissões do 777 à pasta ... Mas não entendi por que adicionar as permissões r e w não funcionou.

Talvez alguém possa ajudar a explicar?

Btw eu também fiz

chmod +rw /tmp/company
chmod +rw /tmp/company/product

com o mesmo efeito, as permissões não se aplicam. (No OSX era estranho, ls -l mostrava permissões certas, mas as propriedades do Finder não mostravam permissões ... e os arquivos não eram gravados dentro do diretório ... No linux, ls -l realmente mostrava apenas permissões de rx para "outro")

É especial quando eu aplico permissão + w ao invés de números?

    
por Thalia 15.12.2014 / 18:13

1 resposta

1

Está relacionado ao seu umask. Veja isso no chmod manpage:

A combination of the letters 'ugoa' controls which users' access to the file will be changed: the user who owns it (u), other users in the file's group (g), other users not in the file's group (o), or all users (a). If none of these are given, the effect is as if 'a' were given, but bits that are set in the umask are not affected.

Com base no que você descreveu, sua umask é provavelmente 0022. Portanto, o grupo e outras permissões não são configuradas quando você não fornece chmod one de 'ugoa'. Tente usar apenas chmod a+rw /tmp/company .

    
por 15.12.2014 / 19:24