Arquivos de configuração do sistema editáveis pelo usuário em pacotes de snap

0

Estou construindo um pacote snap e meu aplicativo requer um arquivo de configuração que normalmente é colocado em / etc e precisa ser editável apenas pelo usuário root.

Eu descobri que posso me referir facilmente aos arquivos de configuração dentro do confinamento de um snap usando, por exemplo, $ SNAP / myconfig. No entanto, isso faz com que o myconfig seja somente leitura.

Então, como coloco um arquivo de configuração em $ SNAP_DATA ou seu equivalente? Eu acho que esse arquivo tem que ser exposto a um sistema (no jargão mal-humorado) e gravável pelos usuários do sistema (root).

    
por ILIV 02.07.2016 / 17:41

2 respostas

0

O que geralmente estou fazendo é ter o software lendo vários arquivos:

  • configuração do usuário
  • configuração global
  • configuração padrão

Cada chave (como se fosse yaml ou json, ou apenas par de valores-chave) que estão no topo da pilha, substitui as que estão abaixo.

Dessa forma, você pode enviar sua configuração padrão em $SNAP , se o usuário definir uma configuração global, ele poderá ajustar (ou copiar) em $SNAP_DATA com o mesmo nome de arquivo. e mesmo no nível do usuário com $ SNAP_USER_DATA '.

Observe que você pode enviar um aplicativo de configuração como parte do snap para organizar seus arquivos de configuração.

    
por didrocks 04.07.2016 / 08:44
0

Existe um diretório gravável para o seu snap, que o snap pode ler e gravar arquivos. Sugiro que você faça um subdiretório etc / para esse arquivo de configuração. Pode ser necessário fornecer um wrapper que chame o editor e dê acesso a esse arquivo.

    
por Mark Shuttleworth 06.07.2016 / 12:56