su silenciosamente falha com o bash em / etc / passwd

0

Sempre que eu tento su para root usando su enquanto logado como um usuário regular em minha máquina Debian, ele silenciosamente falha, me devolvendo ao meu usuário original e shell. Enquanto procurava por esse problema, encontrei soluções que explicavam que esse comportamento deveria acontecer se o usuário em que eu tentei fazer o login tiver um shell inválido em /etc/passwd , o que não parece ser o caso, a primeira linha no o arquivo é: root:x:0:0:root:/root:/bin/bash .

A única maneira que posso su para root é com:

su -s /bin/sh

Como parece que o problema está na instalação bash , tentei reinstalar bash com apt-get install --reinstall bash enquanto estava logado como root, mas o erro ainda persiste. Como posso tornar possível fazer login no root usando o bash com apenas su ?

Eu só notei que se durante o intervalo de tempo entre digitar depois de entrar com a senha do root e ser devolvido ao meu usuário original eu tento pressionar ctrl + c , su funciona e estou logado como root no bash.

Se eu estiver logado como root usando um shell e executar /bin/bash a partir dele, ele me retornará um erro de falha de segmentação.

Eu tentei executar /bin/bash -x . Parece rodar para sempre imprimindo /opt/spark//bin:/opt/spark//bin:/opt/spark//bin . Quando forçado a parar com ctrl + c , ele executa bash com root user como se nada tivesse acontecido. strace /bin/bash parece estar mostrando que o comando tenta abrir /root/.bashrc repetidas vezes até que ele segfaults.

    
por Vinícius Aguiar 09.03.2018 / 19:14

1 resposta

5

Seu problema deriva de um loop infinito no seu arquivo ~/.bashrc :

export SPARK_HOME=/opt/spark/ 
export PATH=$PATH:$SPARK_HOME/bin 
source ~/.bashrc

Quando colocado em seu arquivo ~ / .bashrc, você su com sucesso para o usuário e executará seu shell, mas nunca obterá uma solicitação.

A correção mínima seria comentar a linha source .

    
por 09.03.2018 / 20:24