Eu quero mudar o ambiente padrão do shell
e execute chsh -s /bin/zsh
como usuário root,
mas uma mensagem de erro apareceu: chsh: PAM authentication failed
.
Eu acho este tópico http://ubuntuforums.org/showthread.php?t=1702833
mas a resposta não resolveu meu problema
Qualquer ajuda seria apreciada
este é o conteúdo de /etc/pam.d/chsh
#
# The PAM configuration file for the Shadow `chsh' service
#
# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth required pam_shells.so
# This allows root to change user shell without being
# prompted for a password
auth sufficient pam_rootok.so
# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session
este é o conteúdo do / etc / shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh
eu acho que eu costumava executar chsh -s zsh
isso vai mudar a primeira linha de /etc/passwd
como
root:x:0:0:root:/root:zsh
e chsh
solicitará a senha que você tentar
Acabei de editar o /etc/passwd
arquivo manualmente e está tudo bem.
erro estúpido e obrigado por suas respostas
Respostas:
Verifique seu arquivo / etc / shells e adicione / bin / zsh ao arquivo se esta linha não existir.
fonte
/etc/passwd
se eu inseri o formato correto do nome do shell. Thx/etc/passwd
. Obrigado @txworking!/etc/passwd
para a conta root ...Verifique o seu
/etc/passwd
. No meu caso, eu havia especificado um shell inválidochsh
anteriormente e foi isso que estava causando o problema.Eu mudei de
zsh
como o shell para/bin/zsh
e isso fez o problema desaparecer para mim.fonte
Parece que seu caminho pode estar errado. Para verificá-lo:
Se o resultado for / usr / bin / zch, faça o seguinte:
* edite para erro de digitação.
fonte
Eu enfrentei o mesmo problema. sempre que digitei o chsh, ele é usado para solicitar
Mas eu resolvi fazendo algumas modificações no
/etc/passwd
arquivobasta abrir o terminal raiz e modificar o
/etc/passwd
arquivo, você pode usar o editor pico, nano ou vi para este trabalho que eu estou passando pelo videpois procure a conta de usuário. e altere os shells para o shell desejado, certifique-se de que o shell desejado esteja instalado em suas distros do linux para que novos usuários vejam quais shells estão presentes no linux, basta digitar
ele os lista lá. Se você instalou o shell e não consegue vê-lo,
/etc/shell
é necessário criar um link e colocar o caminho do shell, digamos, suponha/bin/ksh
no/etc/shells
arquivo manualmente ...por exemplo, você está no bash e deseja alterá-lo para ksh
basta ir para a conta no
/etc/passwd
arquivo e no último campo editar/bin/bash
para/bin/ksh
ou/bin/ksh93
(como no seucat /etc/shells
)basta sair e entrar e você está pronto para ir ...
para usuários de outras distros (digamos) ubuntu
digitar
sudo -H gnome-terminal
(para obter um terminal raiz)e o processo é o mesmo que acima, pois você também possui um terminal raiz como um usuário do kali-linux.
fonte
Você deve executar seu código como sudo:
Eu também tive o mesmo problema e funcionou!
fonte