Não é possível exec / bin / false: esse arquivo ou diretório não existe

10

Estou tentando abrir o GNU Screen com o seguinte comando no meu Mac OS:

host:~ user$ screen

O terminal da tela é aberto, mas morre rapidamente com a mensagem de erro:

Não é possível exec / bin / false: esse arquivo ou diretório não existe

Meu terminal está configurado para abrir o bashshell na inicialização. Eu tentei definir o shell do terminal para sh, dá o mesmo erro.

No entanto, quando executo o screencomando as sudo, o comando é bem-sucedido.

Como resolvo isso para o usuário normal?

sultan.of.swing
fonte
2
Procure /bin/falsenos arquivos rc ( .bashrc, .bash_profileetc.) Verifique também o seu .screenrc.
choroba

Respostas:

9

Dê uma olhada nos scripts de inicialização do shell bashou no screenarquivo de configuração e veja se há algum lugar falsesendo usado com o caminho explícito /bin/false.

No macOS, o falseutilitário está localizado em /usr/bin, não em /bin.

Caso contrário, verifique se o seu shell de login, por algum motivo estranho, está definido como /bin/false, inspecionando /etc/passwdou consultando as "Opções avançadas" na seção "Usuários e grupos" das Preferências do sistema (você as obtém clicando com o botão direito do mouse no seu usuário). na lista de contas de usuário, e você também pode alterar o shell aqui). Alguém pode ter seguido sem pensar um tutorial / HOWTO que configura um usuário /bin/falsecomo seu shell padrão.

Quando você executa screencom sudovocê, usa rootos arquivos init do shell / tela. É por isso que isso funciona.

Kusalananda
fonte
2
Desculpe, pressionar enter acidentalmente postou o comentário incompleto. Eu verifiquei os seguintes arquivos: / etc / passwd e ~ / .screenrc. No entanto, parece que meu shell foi configurado com / bin / false como shell padrão. Quando eu fiz um "eco $ SHELL", deu "/ bin / false". Fazer uma "exportação SHELL = / bin / bash" corrigiu o problema. :)
sultan.of.swing
1
@ sultan.of.swing Bom! Você deve alterar seu shell padrão nas Preferências do Sistema. Além disso, se isso resolver seu problema, considere aceitar a resposta
Kusalananda
5

Vá para preferências no Terminal e, em seguida, vá para geral e, em 'Shell aberto com', selecione Comando e digite bash -l

Ravi
fonte
3
Por favor, explique o que isso faz e como resolve o problema.
guntbert 4/09/18
é "bash - <Olho de Capital>" ou "bash- <Uncial Ell>"?
26919 Reb.Cabin
a melhor resposta é
Reb.Cabin