umask no Ubuntu Server 10

2

Isso está em uma máquina de teste, não em produção. Eu incluí o seguinte no .bashrc de um usuário:

umask 000

Eu entrei de novo. Quando vou criar um arquivo no meu diretório pessoal, digamos, usando o vi test.txt, o arquivo obtém a permissão rw-rw-rw.

Eu também tentei definir umask manualmente:

umask a=rwx

O que estou fazendo de errado, já que preciso do equivalente a CHMOD 0777 ou 0755 em arquivos e diretórios? Novamente, esta é uma situação de teste, então a segurança não é de nenhuma preocupação no momento.

Edit: Venha para pensar sobre isso, isso é impossível? Como umask para arquivos é subtraída para 666, umask menor é 000, portanto, CHMOD de 666 é o maior que um arquivo pode obter? Não tem como dar arquivos CHMOD de 755 ou 777 usando umask?

    
por djdy 27.06.2011 / 22:08

2 respostas

0

Não consigo encontrar uma referência, mas tenho quase certeza de que você não pode definir x como uma permissão padrão em um arquivo.

    
por 27.06.2011 / 22:30
2

umask não define as permissões padrão, ele é usado para modificar o modo padrão de certas chamadas do sistema, como open(2) e mkdir(2) .

No seu caso, vim está criando o arquivo com um modo 0666 , que seria modificado ainda mais pelo umask. O padrão de 0022, então criaria um arquivo com um modo de 0644. O umask não pode adicionar bits, ele só pode mascarar eles (daí o nome).

Como exemplo, executando

$ touch testfile
$ ls -l testfile
-rw-r--r-- 1 bob bob 0 2011-06-27 16:36 testfile

ainda fez a seguinte chamada de sistema (observe o 0666 no campo mode_t)

open("testfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
    
por 27.06.2011 / 22:32