Como o mal é isso: echo bash .bashrc

2

Eu estava pensando em fazer uma brincadeira com alguém executando um dos seguintes comandos:

echo bash >> .bashrc

ou

echo source .bashrc >> .bashrc

Se alguém fez isso com você, o que você poderia fazer para corrigi-lo (supondo que você tenha acesso apenas à linha de comando)? Existe alguma coisa que você poderia fazer, a não ser pedir a outro usuário para editá-lo com sudo ?

    
por vikarjramun 07.06.2018 / 17:12

1 resposta

4

Você não pode editar os arquivos de inicialização do shell do outro usuário, a menos que as permissões estejam definidas de forma insegura. Fazê-lo sem o seu conhecimento ou consentimento (o que vale para qualquer arquivo em seu diretório pessoal) seria considerado antiético e também pode ser considerado uma violação de conduta, dependendo de quais regras de conduta estão em vigor no sistema.

Se você tiver sudo direitos no sistema e considerar jogar essa "brincadeira", então você não deve tem sudo direitos nesse sistema .

O primeiro comando adicionaria bash como um comando no final de .bashrc . Se este fosse .bashrc no diretório base do usuário, e se o usuário fosse um bash user, isso faria com que um loop recursivo infinito de shells interativos fosse iniciado (assim que uma sessão de shell fosse iniciada), até terminado ou executando em restrições de recursos.

O segundo comando causaria um loop semelhante, mas o código só seria executado em um único ambiente de processo bash . Isso continuaria até ser finalizado, ou até que alguma variável de ambiente (como PATH , se o script fosse adicionado a ela em cada iteração) ficasse muito grande e, nesse ponto, um limite de recurso seria atingido.

Em um sistema multiusuário, essas duas "brincadeiras" podem afetar outros usuários, já que recursos compartilhados (principalmente CPU e memória) são consumidos.

Editar, corrigir e salvar o arquivo .bashrc enquanto os cenários acima estão em andamento interromperia o loop, mas não liberaria recursos até que o processo bash do usuário afetado fosse encerrado.

Como uma correção de pânico, seria possível pará-lo usando pkill -U username bash como root ou com pkill bash como usuário afetado. Isso encerraria todos os processos bash do usuário afetado.

    
por 07.06.2018 / 17:47

Tags