데비안 컴퓨터에 일반 사용자로 로그인한 상태에서 루트로 로그인하려고 할 때마다 su
자동으로 실패하고 원래 사용자와 셸로 다시 돌아갑니다. 이 문제를 검색하는 동안 로그인하려는 사용자가 에 잘못된 쉘을 가지고 있는 경우 이 동작이 발생해야 한다고 설명하는 몇 가지 솔루션을 발견했습니다. /etc/passwd
그러나 그렇지 않은 것 같습니다. 파일의 첫 번째 줄 예: root:x:0:0:root:/root:/bin/bash
.
루트로 su할 수 있는 유일한 방법은 다음과 같습니다.
su -s /bin/sh
설치 자체 에 문제가 있는 것 같아서 bash
root로 로그인한 상태에서 재설치를 해보았 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가 발생할 때까지 명령이 계속해서 열려고 시도함을 나타내는 것 같습니다.bash
root
strace /bin/bash
/root/.bashrc
답변1
문제는 파일의 무한 루프로 인해 발생합니다 ~/.bashrc
.
export SPARK_HOME=/opt/spark/
export PATH=$PATH:$SPARK_HOME/bin
source ~/.bashrc
~/.bashrc 파일에 배치하면 성공적으로 사용자에게 su를 전송하고 쉘을 실행할 수 있지만 프롬프트는 절대 수신되지 않습니다.
최소한의 수정은 해당 줄을 주석 처리하는 것입니다 source
.