Umask diferente para diretórios e arquivos

2

Como posso configurar uma umask diferente para diretórios e arquivos?

Eu preciso de dirs com umask 003 e arquivos com umask 117

    
por Luigi T. 13.01.2017 / 17:34

2 respostas

3

umask é global em bash . Uma coisa que você pode fazer é criar um mkdir wrapper (um script, você dá o nome a ele) que mudaria a máscara depois de executá-la.

#!/bin/bash
umask 0701 ; /path/to/real/mkdir $1 ; umask 0604

Isso foi respondido aqui:

Lembre-se: Para diretórios, as permissões base são ( rwxrwxrwx ) 0777 e, para arquivos, elas são 0666 , ou seja, você não obterá permissões de execução na criação de arquivos dentro do seu shell, mesmo que o umask permita. Isso é feito claramente para aumentar a segurança na criação de novos arquivos .

Exemplo:

[admin@host test]$ pwd
/home/admin/test
[admin@host test]$ umask
0002
[admin@host test]$ mkdir test
[admin@host test]$ touch test_file
[admin@host test]$ ls -l
total 4
drwxrwxr-x 2 admin admin 4096 Jan 13 14:53 test
-rw-rw-r-- 1 admin admin    0 Jan 13 14:53 test_file

umask Especificação Unix não informa nada sobre os detalhes específicos da matemática dessa permissão de arquivo. Cabe aos desenvolvedores do shell decidir (e criadores do sistema operacional).

    
por 13.01.2017 / 17:48
4

Por favor, note que o comando padrão mkdir tem uma opção -m para definir os bits de permissão no momento da criação:

-m mode

Set the file permission bits of the final created directory to the specified mode. The mode argument can be in any of the formats specified to the chmod(1) command. If a symbolic mode is specified, the operation characters + and - are interpreted relative to an initial mode of a=rwx.

No seu caso, você pode definir o umask para o que for necessário para as permissões de seus arquivos e usar a opção -m para a criação da pasta.

    
por 13.10.2018 / 21:24

Tags