Erro: “O valor da variável SHELL não foi encontrado no arquivo / etc / shells” ao executar o 'pkexec'

3

No Ubuntu 14.04, estou recebendo o erro "O valor da variável SHELL não foi encontrado no arquivo / etc / shells" ao executar pkexec para executar um script.

O mais provável é que esse erro tenha sido iniciado depois que eu removi o shell de peixe, que foi definido como meu shell padrão.

O conteúdo de /etc/shells é:

  

# / etc / shells: invólucros de login válidos |   / bin / sh
  / bin / traço
  / bin / bash
  / bin / rbash

Como posso corrigir isso?

    
por J. Doe 05.01.2016 / 18:16

1 resposta

3

O problema é este: pkexec está acessando $SHELL para determinar qual shell usar para avaliar o restante do comando; já que você desinstalou o fish mas não fez mais nada, $SHELL ainda contém /usr/bin/fish , mas pkexec não considera /usr/bin/fish como um shell válido, pois /usr/bin/fish foi removido de /etc/shells . / p>

Você precisa fazer estas duas coisas:

  1. Defina um novo shell para o usuário, para que na próxima vez que o ambiente for carregado $SHELL contenha um caminho para um shell válido. Por exemplo. para definir o Bash como o novo shell do seu usuário (substitua user pelo nome de usuário do usuário):

    sudo chsh -s /bin/bash user
    
  2. Efetue logout / login para recarregar o ambiente para que $SHELL contenha o caminho para o novo shell para seu usuário.

por kos 05.01.2016 / 19:02