É possível desinstalar o sh?

2

Isso pode soar bobo, mas eu quero desinstalar sh (para fins de pesquisa) e substituí-lo com o meu próprio shell. Isso é realmente possível?

Muitos scripts e programas parecem estar codificados, por isso estou em dúvida quanto à sua viabilidade.

    
por whatever489 28.06.2016 / 16:35

2 respostas

4
  

⚠️ ATENÇÃO! POR FAVOR, LEIA ANTES DE EXECUTAR TODOS OS COMANDOS! ⚠️

     

Esta resposta é apenas fornecida para pesquisa e para conhecimento adicional do Ubuntu Linux. Executar quaisquer comandos nesta resposta pode muito bem destruir completamente o seu sistema. Verifique se você está em uma VM ou em um backup. Eu não sou responsável se você quebrar seu sistema.

O comando sh é fornecido por dash , por meio de um link simbólico:

$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Jun  1 08:33 /bin/sh -> dash*

$ which sh
/bin/sh

$ dpkg -S /bin/dash
dash: /bin/dash

$ dpkg -S /bin/sh
diversion by dash from: /bin/sh
diversion by dash to: /bin/sh.distrib
dash: /bin/sh

Para removê-lo, execute o comando abaixo:

sudo apt remove dash

O APT retrocederá com a seguinte mensagem de erro:

You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'

Se você estiver realmente disposto a destruir seu sistema, digite-o e pressione Retornar .

O Ubuntu irá então desinstalar bash , lightdm , e o ubuntu-desktop meta-package (assim como todos os pacotes que dependem desses três), porque todos eles têm uma dependência em dash . A menos que seu shell atual funcione perfeitamente, seu sistema ficará inutilizável depois que você eliminar a última instância de bash ou dash .

Se você realmente seguir com esse comando, a única maneira de restaurar os arquivos apropriados é inicializar em um Live CD e reinstalar os pacotes por meio de uma sessão de recuperação chroot ed.

Se você tiver sorte , talvez ainda consiga reparar seu sistema ao reinstalar os pacotes, desde que você ainda tenha um shell raiz aberto. Os sistemas se recuperaram do pior antes, mas a sorte realmente precisa estar do seu lado para isso.

Em vez disso, sugiro que você refaça o link simbólico /bin/sh para apontar para o seu shell. Nesse caso, você pode simplesmente restaurar de volta para dash se algo realmente der errado. Faça isso executando estes comandos:

sudo -s
cd /bin
rm sh
ln -s /path/to/your/shell sh
chmod 777 sh

Restaure de volta para dash , repetindo essas etapas, mas especificando dash em vez de seu próprio shell. Ou apenas execute sudo apt install --reinstall dash . Você pode precisar especificar um init personalizado para fazer isso.

    
por Kaz Wolfe 29.06.2016 / 01:13
0

Eu instalaria seu próprio shell ao lado de SH. Desinstalar o SH é uma idéia muito ruim, pois vários programas e scripts dependem dele.

    
por jadenPete 29.06.2016 / 00:58