Onde os scripts gerados devem ser colocados no sistema de arquivos?

1

Estou escrevendo um software (C ++) que gera scripts em Python. Onde esses scripts temporariamente existentes devem ser colocados no sistema de arquivos?

Eu li algumas páginas sobre o Filesystem Hierarchy Standard, mas não encontrei nenhuma referência aos scripts gerados.

/ usr / bin não parece ser uma boa ideia, pois pode ser somente leitura para determinados usuários. Minha ideia seria colocá-los em / var / run / my_program.

Está certo / ok? Ou qual é o "lugar certo"?

Editar: Os scripts são usados apenas enquanto os programas criadores são executados. Isso significa que eles não precisam passar de uma reinicialização.

    
por DrP3pp3r 25.03.2015 / 09:39

1 resposta

1

Arquivos temporários cuja vida útil não excede a do programa que os cria e, em particular, não devem sobreviver a um reinício, entre em /tmp . Ou melhor, a convenção é usar o diretório indicado pela variável de ambiente TMPDIR e voltar para /tmp , se não estiver definido.

Você pode executar arquivos em /tmp . Embora um administrador do sistema possa montá-lo sem permissões executáveis, isso seria uma configuração de proteção para um sistema que executa apenas aplicativos específicos: é de se esperar que impedir a execução sob /tmp interromperia alguns aplicativos e, normalmente, não melhoraria segurança de qualquer maneira.

Lembre-se de que esse diretório costuma ser compartilhado entre usuários, portanto, é necessário ter cuidado ao criar arquivos para não começar a usar acidentalmente um arquivo existente de outro usuário. Use o utilitário mktemp ou o mkstemp , ou melhor, crie um diretório temporário privado com mktemp ou mkdtemp e trabalhe nesse diretório.

/run ou /var/run não são apropriados porque você pode não ter permissão para criar arquivos lá (na verdade, você não terá permissão para criar arquivos lá, a menos que seja concedido pelo sistema administrador). Eles são para uso do sistema, não para aplicativos.

    
por 26.03.2015 / 01:04