Como definir umask para que os diretórios sejam 'r-x' e os arquivos sejam '---'

2

Eu quero definir as permissões padrão para diretórios recém-criados para ter r-x para outros e aqueles de arquivos recém-criados (arquivos não-diretório) para ter --- .

Se eu definir o umask como 2, as permissões do diretório receberão r-x , mas os arquivos 'get r-- .

Não encontrei nenhuma maneira de alcançar o que quero com umask .

Por fim, quero que outros possam percorrer os diretórios, mas não ler o conteúdo dos arquivos. Eu acho que é uma demanda muito razoável, mas eventualmente parece não haver tal cenário.

    
por Marcus Thornton 27.05.2014 / 14:48

1 resposta

5

Se você criar apenas diretórios com o comando mkdir no prompt do shell, poderá ter:

umask 7
mkdir() (umask 2 && command mkdir "$@")

No seu arquivo de personalização do shell ( ~/.zshrc para zsh , ~/.bashrc para bash ...).

Isso define o umask como 7, mas redefine mkdir para uma função na qual o% realmkdir é chamado (com os mesmos argumentos ( "$@" )) com um umask de 2. (observe que o (...) cria um subshell, então o umask 2 é aplicado apenas dentro dessa função).

    
por 27.05.2014 / 15:35