As práticas recomendadas indicam que o uso de / var deve ser restrito a sudoers

2

Eu escrevi um pacote e gostaria de usar /var para persistir alguns dados. Os dados que estou armazenando talvez sejam considerados como uma adição para /var/db .

O padrão que observo é que os arquivos em /var/db e os arredores são de propriedade de root . O uso primário (pretendido) do pacote filtra tarefas agendadas - o que significa que você precisaria de permissões para editar o crontab.

  1. Devo presumir uma instalação do sudo do pacote?
  2. Devo fazer com que o pacote seja degradado para um subdiretório /usr e, em caso afirmativo, qual?
  3. Se eu 'opinar' que qualquer instalação não-sudo requer um configrc (com caminhos), onde o pacote deve parecer (supondo um ambiente de host compartilhado) para esse arquivo de configuração?
  4. Devo usar /usr/lib de acordo com os pensamentos neste artigo ?

Por acaso, este pacote é uma jóia de rubi e você pode encontrá-lo aqui .

    
por New Alexandria 25.10.2012 / 18:08

2 respostas

1

Se esse pacote estiver instalado como root, ele terá acesso a /var .

Se ele for instalado por um usuário (que não pode gravar em /var nem /usr ), o procedimento padrão é definir --prefix=$HOME/somedir no script configure . Ou você fornece outros meios para definir o diretório para um local ao qual o usuário tenha acesso de gravação.

    
por 25.10.2012 / 18:40
1

/var é um pouco “o que não coube em outro lugar”. A estrutura não se destina a permitir que usuários individuais adicionem à hierarquia.

Se o seu pacote é instalado por um usuário comum, eles normalmente colocam o programa, seus dados estáticos e seus dados dinâmicos em um único diretório em algum lugar em seu diretório pessoal. Eu recomendo empacotar o programa de uma forma que funcione apenas se você descompactá-lo e executar a partir daí ou executar ./configure && make && make install , por exemplo uma estrutura como

bin/myprogram
share/static-data
man/man1/myprogram.1
data/dynamic-data

Se o seu pacote for instalado por um administrador, então, um diretório específico do aplicativo estará em /var/lib é o local habitual para dados dinâmicos que não são específicos de um usuário. Os pacotes destinados ao uso em todo o sistema são normalmente fornecidos em formatos de pacotes específicos da distribuição ( .deb , .rpm ,…); o script de compilação de pacotes cuida da configuração de caminhos corretamente.

    
por 26.10.2012 / 01:42