Isso foi perguntado antes em vários lugares. Em suma, o vim usa apenas umask
(como outros aplicativos) para desativar as permissões, mas você pode usar um script para modificar as permissões do arquivo.
A maioria dos aplicativos (como editores de texto) tratam sua saída como dados , e quando abrem um arquivo, usam permissões de estilo de dados, por exemplo, 0666, 0644, 0600, etc. Da mesma forma, a maioria dos programas não define umask, mas apenas confia em configurações existentes para reduzir os privilégios que podem oferecer a alguns usuários.
Abrir um arquivo existente é um assunto diferente. Muitos editores escrevem o arquivo atualizado sem recriá-lo ou renomeá-lo, usando o mesmo inode . Isso acontece para preservar as permissões (e propriedade) de um arquivo. Alguns (por exemplo, vim e vil) têm alguma disposição para alterar temporariamente as permissões de um arquivo para gravar em um arquivo "somente leitura". Para isso, eles precisam saber quais eram as permissões originais, mas novamente umask
é irrelevante para as permissões de arquivos resultantes.
Para ler mais
- Vim criando arquivos no superusuário mostra um exemplo de um script que verifica " #! " no início do arquivo, e também se o arquivo for gravado em um diretório com "/ bin /".
- vim: criar arquivo com + x bit repete isso, adicionando alguns outros exemplos.
- addexecmod.vim: adicionar permissão de execução automaticamente ao salvar o arquivo é um plug-in que simplesmente verifica "# ! ".