mudando o shell do zsh para o bash

16

Meu servidor web foi violado por alguém que estava usando o zsh shell. Eu me sinto mais confortável usando o bash shell, pois esses são os padrões que acompanham o Ubuntu e o OS X (os dois principais sistemas operacionais que eu uso). Mas essas perguntas estão focadas no servidor Ubuntu. Eu tenho 4 sites rodando neste servidor web, uso byobu, uso tmux, uso ruby ​​/ ruby ​​on rails, node.js, apache, alguns daemons. Se eu alternar o shell raiz atual do zsh para o bash, poderia haver efeitos colaterais negativos que podem resultar dessa opção? Por exemplo, os processos serão eliminados porque o processo pai (o shell) foi alterado?

JohnMerlino
fonte
Você está perguntando sobre as consequências da mudança (que não são nenhuma, estou usando o zsh agora e posso mudar para o bash quando quiser) ou está perguntando sobre como alterar efetivamente o shell?
Braiam
@Braiam Estou nervoso com as consequências da mudança. Se não houver consequências, então vou mudar. Eu estava pensando que o shell era um processo pai para alguns desses daemons como o apache, e se eu fosse mudar, isso mataria o processo do apache. Mas acho que estou errado.
precisa saber é o seguinte

Respostas:

10

Alterar seu shell, via sudo chsh --shell=/bin/bash $USERalterará o campo shell em /etc/passwd. Esse valor é consultado apenas no momento do login, quando o sistema não tem idéia de qual shell usar para você.

Processos em execução, se iniciados por zsh, bash apacheou evil_overlord's_programnão serão afetados

waltinator
fonte
O shell não é o processo pai de outros processos em execução nele, ou apenas o terminal de controle (e não o shell) seria considerado o processo pai?
31914 JohnMerlino
O loginprograma é executado em um processo, como tudo. Quando o deixa entrar, ele cria outro processo com seu UID, etc, e executa / bin / bash (em / etc / passwd). O shell bash lê de STDIN (configurado por login) e bifurca / executa comandos não internos, aguarda o término e executa um loop para obter mais comandos. A idéia de "terminal de controle" não é útil no Unix / Linux.
waltinator
25

Resposta do estouro de pilha ( alternando de zsh para bash ):

Você pode apenas usar exec para substituir seu shell atual por um novo shell:

Alterne para o bash:

exec bash

Alterne para zsh:

exec zsh

Isso não afetará as novas janelas de terminal nem nada, mas é conveniente.

Troca
fonte
não funcionou. still: echo $ SHELL / usr / bin / zsh
ses
8

Abra seu terminal e use o seguinte comando:

chsh -s $(which bash)
rɑːdʒɑ
fonte
Eu suponho que este é o equivalente de chsh -s / bin / bash
JohnMerlino
2
which bashdaria o caminho absoluto de bash, então seria o mesmo se /bin/bashfosse onde bashestava localizado.
Ryanjdillon
0

No Mac OS Catalina

  1. Mude para zsh:

    chsh -s /bin/zsh
  2. Mude para bash:

    chsh -s /bin/bash
Mono
fonte