umask XXX (bits de permissão) para dar permissão de execução a arquivos

4

Como os arquivos criados por padrão com permissão 666 e umask (em forma de bits de permissão) subtraem bit a bit dessa permissão, podemos fazer algo para conceder a permissão execute sem usar o caractere de permissão (r, w, x )?

Estou me referindo ao uso de máscara bit-wise, por exemplo

umask 002

não define caracteres de permissão, como

umask u+x
umask u=rwx
    
por Kenny 10.01.2016 / 16:45

2 respostas

6

Isso não é possível. umask apenas impede permissões, mas nunca as adiciona. Assim, você só terá permissão de execução se a criação de open() syscall os contiver. Este é o caso se um compilador criar um arquivo executável.

    
por 10.01.2016 / 17:52
0

A permissão de um novo arquivo é calculada a partir da permissão usada com a chamada creat() .

Você umask resulta em:

$ umask 002
$ umask -S
u=rwx,g=rwx,o=rx

Portanto, se você usar creat() com uma permissão de arquivo de 0777 , receberá um novo arquivo com rwxrwxrx . No entanto, os programas usuais usam 0666 como argumento de permissão de arquivo para creat() .

    
por 10.01.2016 / 18:38