Como definir permissões de arquivo com o comando touch


16

Parece que sempre que eu crio um arquivo com touchas permissões definidas para: -rw-r - r-- .

Existe alguma maneira de configurar as permissões touchou isso precisa ser feito depois com um comando diferente?

Respostas:


27

Você pode modificar seu umaskpara 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á touchcriar um 0644arquivo.

Curiosamente, o POSIX descreve esse comportamento em termos de creat:

  1. 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, e S_IWOTHé usado como o argumento modo.

e é apenas seguindo os links para creat, depois openobservando a menção umaske o rastreamento para open(e creat) para verificar se isso umaskdeve afetar touch.

Para umaskafetar apenas o touchcomando, 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, touchnão alterará suas permissões, apenas atualize seus carimbos de data e hora).


2

Você pode manipular o umask. Geralmente ele é definido como 022que significa que quando um usuário cria um arquivo, ele terá permissão 0644, você pode manipular umaskde acordo com suas necessidades.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.