Acho que vejo dois problemas / abordagens aqui:
- protegendo usuários de cometer erros; e
- ter uma maneira de testar uma configuração modificada antes de torná-la permanente
Para o primeiro, fazendo toda a configuração através de alguma ferramenta inteligente que faz mais verificações de sanidade do que $EDITOR /etc/foobar
. Neste caso, ele pode verificar se o endereço IP é válido e se a rota padrão está na mesma rede, etc. A ferramenta pode ser algum script ou uma interface de administração gráfica / baseada na Web (como você tem no OpenWRT, etc.). .)
A outra coisa seria fazer com que o usuário verificasse a configuração da rede depois que ela estivesse em vigor, da mesma forma que muitos sistemas fazem o usuário verificar as configurações de exibição (resolução etc) e voltar à última configuração em funcionamento se o usuário não fizer nada .
Então, algo assim:
- Ter uma configuração de inicialização separada da nova configuração, permitir que o usuário faça alterações somente na configuração nova (não na configuração de inicialização!).
-
Quando o usuário deseja aplicar a nova configuração, agende uma reinicialização para ocorrer em aproximadamente 5 minutos ( shutdown -r +5
) e, em seguida, carregue a nova configuração.
-
Agora, peça ao usuário que verifique se eles ainda acessam o sistema (incluindo a abertura de novas sessões SSH).
-
Se puderem, eles poderão confirmar a alteração, cancelando a reinicialização e copiando a nova configuração para a configuração de inicialização.
-
Se eles não puderem acessar o sistema depois que as modificações estiverem em vigor, eles não poderão verificar as alterações, e a reinicialização permitirá que eles iniciem novamente (desde que a configuração de inicialização esteja correta, o que deve ser, desde que o sistema começou a usá-lo anteriormente.)
A ideia deve ser aplicável a alterações na configuração da interface de rede, configuração de firewall, etc. Mas isso requer que a configuração seja independente, para que você não possa terminar em uma situação em que a nova configuração só funcione porque configuração de inicialização efetiva continha alguma regra importante)
(E, claro, não é absolutamente necessário reinicializar o sistema, apenas restaure a configuração.)
Nada disso impede que os usuários de root gravem a si mesmos na perna, é claro, mas pelo menos você poderia fornecer uma ferramenta com um interruptor de segurança.
Ter acesso de backup por meio do console / porta serial ou ainda seria melhor.
Nesse caso específico, se os usuários forem personalizados para editar /etc/network/interfaces
e executar ifup
, você terá que ensiná-los sobre isso, o que pode ser difícil. Ou você pode alterar o sistema para que a configuração real realmente esteja em outro lugar, para que eles não deixem que os hábitos antigos causem problemas.