호스트 이름을 변경하면 시스템 및 데스크탑 환경(예: KDE, Gnome 등)이 중단됩니다. 이를 허용하려면 어떻게 해야 합니까?

호스트 이름을 변경하면 시스템 및 데스크탑 환경(예: KDE, Gnome 등)이 중단됩니다. 이를 허용하려면 어떻게 해야 합니까?

오래 전에 나는 C++로 일종의 스텔스 모드 악마를 개발하기 시작했습니다. 이 중 일부는 루트로 실행되고 일부는 호스트 이름을 임의로 생성된 호스트 이름으로 변경하는 것입니다. 내 호스트 이름을 변경하면(가상 터미널, Stealthdemon 또는 dhcp 기능을 통해) 어떤 방식으로든 시스템이 엉망이 되는 것을 경험했습니다. 한 가지 예는 바로가기를 통하거나 클릭해도 갑자기 모든 KDE 응용프로그램이 실행되지 않는다는 것입니다. 호스트 이름을 원래 호스트 이름으로 재설정하면 모든 것이 완벽해 보입니다.

내 질문은 다음과 같습니다

  1. Bash를 통해 호스트 이름을 발급할 때 또 무엇을 호출하나요?
  2. c/C++ 코드에서 호스트 이름을 발행할 때 또 무엇을 호출합니까?
  3. 이상한 행동의 이유는 무엇입니까? (내 생각에는 xorg 또는 kde 자체가 어떻게든 이전 호스트 이름에 연결되었을 수 있지만 변경 후에는 더 이상 연결되지 않습니다.)
  4. 시스템을 안정적으로 유지하면서 쉘이나 코드를 통한 호스트 이름 변경을 허용하려면 어떻게 해야 합니까?

미리 감사드립니다.

답변1

  1. X 인증 파일( ~/.Xauthority/tmp/xauth-*)에는 시스템 호스트 이름이 포함되어 있습니다. 실제 호스트 이름과 다를 경우(그림 참조 hostname(1)) X 응용 프로그램이 시작되지 않습니다.

내 경우에는 "지정된 프로토콜 없이 디스플레이에 연결할 수 없습니다: 0"이 인쇄되었습니다. 그러나 X 인증 파일의 호스트 이름을 실제 값으로 변경하면 문제가 해결됩니다. (테스트를 위해 16진수 편집기를 사용했습니다. 음, 변경하는 더 좋은 방법이 있어야 합니다)

답변2

KDE 4.13.3에서도 같은 문제가 발생했습니다. 나는 그것을 고치기 위해 많은 일을 했습니다(어떤 것은 중복되었을 수도 있지만 이것은 확실히 나에게 효과적이었습니다). KDE가 실행되고 있지 않을 때 명령줄에서 이러한 작업을 수행해야 할 수도 있습니다.

  1. .Xauthority홈 디렉터리의 파일을 삭제합니다 .
  2. .kde홈 디렉터리의 폴더 로 이동합니다 .
  3. cache-<your old hostname>로 이름이 변경되었습니다 cache-<your new hostname>.
  4. socket-<your old hostname>로 이름이 변경되었습니다 socket-<your new hostname>.
  5. tmp-<your old hostname>로 이름을 바꿉니다 tmp-<your new hostname>. 이 디렉터리의 모든 파일을 삭제합니다.
  6. 디렉토리 의 . .kde로 이동하여 .kde/share/config/모든 kwin*파일을 삭제합니다(예 rm kwin*: .
  7. 동일한 디렉토리 내의 디렉토리를 삭제하십시오 session.

X 서버(또는 컴퓨터)를 다시 시작하면 KDE가 작동합니다.

관련 정보