Parece que sempre que eu crio um arquivo com touch
as permissões definidas para: -rw-r - r-- .
Existe alguma maneira de configurar as permissões touch
ou isso precisa ser feito depois com um comando diferente?
Parece que sempre que eu crio um arquivo com touch
as permissões definidas para: -rw-r - r-- .
Existe alguma maneira de configurar as permissões touch
ou isso precisa ser feito depois com um comando diferente?
Respostas:
Você pode modificar seu umask
para permitir (para a maioria das implementações) mais privilégios de leitura / gravação, mas não executáveis, pois geralmente as permissões solicitadas são 0666
.
Se você umask
é 022
, você verá touch
criar um 0644
arquivo.
Curiosamente, o POSIX descreve esse comportamento em termos de creat
:
Se o arquivo não existir:
A função creat () é chamada com os seguintes argumentos:
O operando do arquivo é usado como argumento do caminho.
O valor do bit a bit-inclusive OR de
S_IRUSR
,S_IWUSR
,S_IRGRP
,S_IWGRP
,S_IROTH
, eS_IWOTH
é usado como o argumento modo.
e é apenas seguindo os links para creat
, depois open
observando a menção umask
e o rastreamento para open
(e creat
) para verificar se isso umask
deve afetar touch
.
Para umask
afetar apenas o touch
comando, use um subshell:
(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask
(observe que, em qualquer caso, se o arquivo existia anteriormente, touch
não alterará suas permissões, apenas atualize seus carimbos de data e hora).
Você pode manipular o umask
. Geralmente ele é definido como 022
que significa que quando um usuário cria um arquivo, ele terá permissão 0644
, você pode manipular umask
de acordo com suas necessidades.