bash를 사용하여 /etc/passwd에서 su가 자동으로 실패합니다.

bash를 사용하여 /etc/passwd에서 su가 자동으로 실패합니다.

데비안 컴퓨터에 일반 사용자로 로그인한 상태에서 루트로 로그인하려고 할 때마다 su자동으로 실패하고 원래 사용자와 셸로 다시 돌아갑니다. 이 문제를 검색하는 동안 로그인하려는 사용자가 에 잘못된 쉘을 가지고 있는 경우 이 동작이 발생해야 한다고 설명하는 몇 가지 솔루션을 발견했습니다. /etc/passwd그러나 그렇지 않은 것 같습니다. 파일의 첫 번째 줄 예: root:x:0:0:root:/root:/bin/bash.

루트로 su할 수 있는 유일한 방법은 다음과 같습니다.

su -s /bin/sh

설치 자체 에 문제가 있는 것 같아서 bashroot로 로그인한 상태에서 재설치를 해보았 bash으나 apt-get install --reinstall bash오류가 지속되었습니다. bash를 사용하여 루트로 로그인하려면 어떻게 해야 합니까 su?

방금 루트 비밀번호를 입력하고 원래 사용자에게 다시 덤프하는 사이에 ctrl+를 누르면 c작동 su하고 bash에 루트로 로그인된다는 것을 알았습니다.

root셸을 사용하여 로그인하고 /bin/bash거기에서 실행하면 분할 오류 오류가 반환됩니다.

나는 달리기를 시도한다 /bin/bash -x. 인쇄를 실행하는 데 시간이 오래 걸릴 것 같습니다 /opt/spark//bin:/opt/spark//bin:/opt/spark//bin. ctrl+ 사용을 강제로 중지하면 아무 일도 일어나지 않은 것처럼 사용자 와 함께 실행 c됩니다 . segfault가 발생할 때까지 명령이 계속해서 열려고 시도함을 나타내는 것 같습니다.bashrootstrace /bin/bash/root/.bashrc

답변1

문제는 파일의 무한 루프로 인해 발생합니다 ~/.bashrc.

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

~/.bashrc 파일에 배치하면 성공적으로 사용자에게 su를 전송하고 쉘을 실행할 수 있지만 프롬프트는 절대 수신되지 않습니다.

최소한의 수정은 해당 줄을 주석 처리하는 것입니다 source.

관련 정보