Cria um arquivo com 751 permissões na criação

3

Eu continuo criando scripts perl de prática em um diretório linux usando vi <filename> e preciso de chmod 751 <filename> antes de poder executá-lo como desejar. Tenho certeza de que há uma maneira simples de padronizar minhas permissões ou configurá-las na criação, mas não estou familiarizado com ela - ayuda me por favor.

    
por mbb 05.04.2011 / 21:18

2 respostas

2

Uma solução simples seria criar um alias bash para vi , que primeiro criará o arquivo e, em seguida, alterará suas permissões antes de abri-lo. Use algo fácil de lembrar, como vix (x para bit executável):

por exemplo. (não testado):

function vix {
        touch $1
        chmod 751 $1
        vi $1
}

Observe que o aliasing do próprio vi é uma má idéia, já que muitos outros programas o chamam diretamente, o que pode causar problemas em seu sistema.

    
por 05.04.2011 / 21:27
1

751 não faz muito sentido para scripts - permite que "outros" executem o arquivo, mas não o leiam. (Para scripts, que não recebem setuid honrados, isso é impossível.)

Para definir permissões padrão para arquivos recém-criados, você pode usar umask (por processo) ou ACLs padrão (por diretório). Mas os dois só podem remover bits de permissão; nenhum deles irá adicionar o bit "executável" automaticamente, a menos que o programa peça especificamente por ele. (Por exemplo, fopen() sempre solicita 0666, o padrão normal para arquivos.)

Você terá que seguir a sugestão do mjb de escrever um script que crie um arquivo e atualize imediatamente suas permissões. Como alternativa, execute seus scripts de prática como perl foo.pl , que não requer o bit executável.

    
por 05.04.2011 / 21:28