빌어먹을 작은 Linux 텔넷 서버가 정지됩니다

빌어먹을 작은 Linux 텔넷 서버가 정지됩니다

나는 가상 머신에서 Damn Small Linux(또는 "DSL")를 사용하고 있습니다("순수한" 데비안 기반은 아닙니다. apt-get에 액세스할 수 있습니다).
텔넷 서버(telnetd + xinetd)를 설치했습니다.
또한 이번에는 텔넷 클라이언트(Linux 배포판 AntiX)가 설치된 또 다른 가상 머신을 실행합니다.

Telnet을 사용하여 AntiX에서 DSL에 연결할 때 로그인 + 비밀번호를 묻는 메시지가 표시됩니다. 문제 없습니다.
그런데 로그인을 하면 메시지만 뜨고 멈춥니다. "동결"이란 다음과 같습니다.

  1. 원하는 내용을 입력할 수 있지만 Enter 키를 누르면 명령이 실행되지 않습니다. 대신 커서가 다음 줄로 이동합니다.
  2. "dsl@dsl$"(명령 프롬프트) 줄이 나타나지 않습니다.
  3. 서버측(DSL)에서는 로그인 시 창이 깜박입니다(닫힙니다).

프로세스가 실행 중인 것처럼 보이지만 문제는 프로세스가 결코 멈추지 않는다는 것입니다. 중지하고 명령줄을 계속 사용하려면 "Ctrl+C"를 입력해야 합니다.

정지되었을 때의 스크린샷은 다음과 같습니다.텔넷 정지 스크린샷

또한 DSL 웹사이트에는 apt-get을 통해 잘못된 애플리케이션을 설치하면 "X 서버와 같은" 것이 중단될 수 있다는 경고가 있습니다. 이것이 X 서버일까요?

내 질문은 다음과 같습니다

  1. 어떤 프로세스가 실행되고 있는지 알 수 있나요? 나는 단지 그것이 다시 시작되지 않도록 노력하고 있을 뿐입니다.
  2. 텔넷을 통해 연결할 때 이 프로세스가 시작되지 않도록 할 수 있습니까?

루트 로그인을 사용하여 오류를 재현할 수도 있습니다.

답변1

이에 따르면위키 페이지about /home/dsl/.bash_profile, 이 파일의 기본 내용은 ssh에서 로그인했는지 확인하고, 그렇지 않은 경우 startx다음 명령을 사용하여 X11 그래픽 서버를 시작합니다.

#!/bin/bash
export IRCNICK=DSL
SSH=`env | grep SSH_CONNECTION`
RUNLEVEL=`runlevel|cut -f2 -d' '`
if [ -z "$SSH" ]; then
   if [ $RUNLEVEL -eq 5 ]; then
       startx
   fi
fi

따라서 텔넷에서 로그인하면 ssh가 감지되지 않으며 startxX11이 실행될 수 있습니다. 가장 간단한 해결책은 이 파일을 편집하여 명령에 주석을 추가 : startx하거나 텔넷 연결을 어떻게든 감지하는 것입니다. Telnet은 일반적으로 특별한 환경 변수를 설정하지 않습니다. 이 명령을 사용하여 tty실제 콘솔이 아닌 의사 터미널에 있는지 확인할 수 있습니다 . 예를 들어, SSH=이 줄 뒤에 다음을 추가합니다.

case `tty` in
/dev/pts*) SSH=telnet ;;
esac

dsl예를 들어 , 다른 사용자의 경우 root홈 디렉토리를 살펴보고 /home/dsl과 다른지 확인하고 합계 .profile를 확인해야 합니다 .bash_profile. 예를 들어 다음과 같은 디렉토리를 찾으십시오.

awk -F: '$1=="root"{print $6}' /etc/passwd

관련 정보