define umask (permissões) da mesma forma que setgid em um diretório

2

Eu sei como usar setgid nos diretórios, para impor que toda a estrutura de diretório tenha user:group de propriedade uniforme.

Existe uma maneira semelhante de definir o umask para um diretório, para que toda a estrutura de diretórios "herde" permissões específicas (por exemplo, 750/640 )?

    
por Martin Vegter 28.01.2014 / 14:12

2 respostas

1

Aqui é feio hack para aplicar no diretório.

mount -o loop,umask=027,uid=test /opt/dev_test /home/test/test2

Como umask no ponto de montagem aplicado na partição NTFS ou VFAT, criei o dispositivo de bloco usando o comando dd e, em seguida, formatado com mkfs.vfat e montado com o comando, conforme mencionado acima.

Resultado do teste

Dentro do diretório test2

[test@test-server test2]$ touch xyz
[test@test-server test2]$ ls -rlt xyz
-rwxr-x--- 1 test root 0 Jan 28 23:22 xyz
[test@test-server test2]$ umask
0002

Fora do diretório test2

[test@test-server test2]$ cd ../
[test@test-server ~]$ touch xyz
[test@test-server ~]$ ls -rlt xyz
-rw-rw-r-- 1 test test 0 Jan 28 23:22 xyz
[test@test-server ~]$ umask
0002
    
por 28.01.2014 / 18:58
1

O valor umask do processo que cria um arquivo ou diretório controlará as permissões específicas finais no momento em que o processo é executado. Por convenção (padrão), os arquivos são criados com um modo de criação (para open() ) de 0666 enquanto os diretórios são criados com 0777. O valor umask é então fatorado para estabelecer as permissões finais.

Assim, a sua "melhor" escolha é garantir que os processos que manipulam o diretório em particular usem umask de 0027 enquanto fornecerão diretórios com 0750 e arquivos com 0640.

    
por 28.01.2014 / 14:42