Hoje eu desliguei uma máquina de produção por engano, porque pensei que estava na minha máquina local. Eu sei, erro iniciante :-(
Como solução para que isso não aconteça novamente, eu estava pensando em remover a permissão de execução do comando shutdown, pois a máquina deve estar sempre ligada.
Essa é uma boa ideia? Você consegue ver algum efeito colateral indesejado fazendo isso?
Cheers, Dan
Respostas:
Completamente outra abordagem para ser avisado de que você trabalha em máquinas de produção é marcar o terminal. Por exemplo, o
user@machine:~#
texto pode ser vermelho nas máquinas de produção, verde no desenvolvimento, etc. Aqui está um bom tutorial de como fazer isso: Prompt do Color Bashfonte
O melhor conselho que posso dar é não fazer login como root, a menos que precise de acesso root e verifique se você tem uma senha root / sudo diferente em cada máquina.
Tornar o desligamento inacessível é uma opção, mas não é uma boa. Alias
shutdown
parashutdown -a
etouch /etc/shutdown.allow
ouchmod a-x /sbin/shutdown
Além disso, onde termina? Você também não permitirá a interrupção, a reinicialização e o init?
fonte
-a
. Além disso, confiar em um alias como esse é o mesmo que confiaralias rm='rm -i'
- um dia ele não estará lá quando você realmente precisar. Além disso,shutdown -a
apenas tem utilidade limitada de qualquer maneira.Alguns pontos a considerar:
fonte
Não acho que mexer com as permissões
shutdown
seja o caminho para lidar com a situação. Basicamente, você acabou de aprender uma lição. Queixo para cima.Eu fiz o mesmo tipo de coisa - obtendo longas cadeias de sessões ssh e depois mexendo com as rotas em uma das máquinas pelas quais fui submetido, me interrompendo. Eu estraguei uma solicitação de rsync, levando à destruição sistemática de um sistema do outro lado do mundo. Eu corri
rm -rf / path
em um servidor de produção. (Naquela época, aprendi como as restaurações funcionavam.)Então, muito mais velho e espero um pouco mais sábio, agora tenho regras estritas que me imponho.
A natureza do meu trabalho exige que eu gaste muito tempo com muitas solicitações de raiz variadas, mas graças aos meus erros no passado, mantenho uma consciência situacional muito melhor do que quando comecei.
fonte
Se você estiver usando o Ubuntu, tente o Molly-guard. Como discutido nesta pergunta semelhante .
fonte
Depende, realmente. Você pode tentar apenas agrupar o comando, mas isso significa que, se você fizer atualizações ou upgrades que afetam esse executável, poderá esquecê-lo e fazer com que ele estrague uma atualização. Tocar com comandos de desligamento do sistema pode ser uma PITA, especialmente se você tiver novas contratações ou um substituto que acabe por não saber que você estava jogando com os binários do sistema.
Pessoalmente, gostaria de agrupar o comando em um script que identifique o sistema pelo nome e faça com que você confirme o que você realmente deseja fazer antes de executar o binário real ou que você deve digitar uma determinada sequência de letras para confirmar o desligamento antes de executar o binário. Isso deve dar uma pausa.
fonte
Você pode considerar configurar o prompt de comando para incluir o nome da máquina, pelo menos nos servidores. Isso pode ajudar a impedir que outros comandos sejam executados na máquina errada no futuro. É mais eficaz se os nomes das máquinas forem coloridos para destacá-los e você pode até usar o código de cores para identificar as funções do servidor.
fonte
Uma maneira é não usar
su
e / ou fazer login diretamente noroot
. Melhor fazer login diretamente na conta E ter uma senha diferente pararoot
a máquina local e a chave ssh.Obviamente, além de observar o prompt '#' vermelho.
fonte
Sim, remover o bit de execução no comando shutdown é a maneira mais simples e segura de impedir desligamentos acidentais, especialmente se você tiver um ambiente de área de trabalho como o KDE na máquina e desejar impedir desligamentos acidentais ao fazer logout.
Quanto às novas pessoas confusas, acho que a primeira coisa que elas farão será
ls -l /sbin/shutdown
descobrir por que não funciona (especialmente se elas têm o bom hábito de preencher nomes de executáveis). Obviamente, você deve contar a eles sobre as alterações que você fez.Para segurança extra, você pode adicionar uma linha para
/etc/rc.local
remover o bit de execução do comando shutdown, para não esquecer de redefini-lo após uma reinicialização.fonte
você pode simplesmente remover / sbin / do caminho da raiz. Dessa forma, você precisa digitar o caminho completo para executá-lo e, geralmente, corrige acidentes.
fonte