configuração ética (estética): / etc vs $ HOME

4
Ok, isso pode não ser uma questão muito concreta, e talvez esteja sujeita a gosto, mas estou lutando para acertar isso, então aqui vai.

Eu tenho um computador. Este computador tem linux nele (graças a deus). Arch Linux para ser específico (com awesome wm). Eu sou o único usuário neste computador.

Quanto à boa prática, configurei dois usuários: o usuário root e o usuário diário romeovs user. Dessa forma, só uso permissões quando necessário (usando sudo , por exemplo).

Ao longo dos anos, tenho trabalhado com meu pacote de software, adicionando um monte de aplicativos a este computador. Nota: vim , git , mpc , mutt , calcurse , ufw , ...

Agora aqui está o problema: qual dos arquivos de configuração desses aplicativos eu uso? Todos eles fornecem um arquivo de configuração /etc -based global , que afeta todos usuários, bem como local ~/.config (ou , infelizmente, ~/ ) opções de configuração.

Eu sempre trabalhei usando as configurações locais, porque isso parecia mais natural. Mas à medida que me familiarizo mais com o meu computador, sinto que isso de alguma forma não tem elegância. Os contra desta abordagem são:

  • dicrepância ao alternar para root user, mesmo com sudo (por exemplo, ao usar vim )

  • nem sempre funciona, por exemplo ao carregar deamons do arco linux DEAMONS array eles são executados pelo usuário root e, portanto, não selecionam as configurações do usuário local.

  • desordem do diretório principal $HOME . Infelizmente, existem muito poucos aplicativos que aderem à filosofia $XDG_CONFIG_HOME .

Os benefícios são:

  • o material é local, o que parece mais nas linhas da divisão de permissões entre root e romeovs .

  • acesso rápido e fácil aos arquivos. não é necessário sudo para editá-las.

  • mais fácil para git de rastreamento dos arquivos de configuração.

  • de alguma forma se sente mais seguro: um usuário pode estragar tudo sem mexer nas configurações globais da máquina.

  • é mais "-pack-update-may-overwite-my-config" -proof

Vamos começar:

What is the de-facto standard to split configuration on a single user machine, especially for the system maintainer (single-user)?

    
por romeovs 05.06.2012 / 01:07

1 resposta

13

Um dia, você mudará seu computador ou fornecerá a outra pessoa (um membro da família, por exemplo) uma conta no seu computador.

  • Se você quiser manter uma configuração no seu próximo computador, coloque-a em seu diretório pessoal.
  • Se a outra pessoa quiser uma configuração diferente, coloque-a em seu diretório pessoal.
  • Se a configuração depender do computador e não do usuário, coloque-a em /etc .

Seus argumentos contra a colocação de arquivos de configuração no diretório inicial não são realmente úteis:

  • sudo mantém a variável de ambiente HOME (a menos que você tenha dito para não). Assim, seus programas continuarão lendo suas configurações no seu diretório pessoal.
  • Os daemons não devem ler suas configurações pessoais. Os daemons normalmente são configurados por meio de arquivos em /etc , não por meio de variáveis de ambiente ou por meio de arquivos em seu diretório inicial.
  • $HOME deve ter muitos arquivos de pontos. É por isso que ls não os mostra.
por 05.06.2012 / 01:47