내 원격 컴퓨터의 Linux 버전(Kali v2.0)에 일종의 버그가 있는 것으로 생각됩니다.TTY 텍스트 콘솔을 시작할 수 없습니다내가 기계에 앉아서 를 누를 때까지 CtrlAltFn.
원격으로 로그인하는데 사용해요SSH그 컴퓨터에 접속한 다음 TTY n을 사용하여 액세스했습니다.스파이, 예를 들면 다음과 같습니다.
# conspy 6
내 SSH 클라이언트(이 경우 Putty)를 TTY6으로 보냅니다.
그러나 TTY 콘솔이 시작되지 않는 한검은 화면커서가 깜박입니다.
그래서 먼저 다음을 보냅니다.
# agetty 38400 tty6 &
그런 다음 TTY6이 실행되기 시작하여 이번에는 로그인하여 상호 작용할 수 있었지만 다음과 같은 이상한 메시지가 표시되었습니다.
Kali GNU/Linux 2.0 kali tty6
kali login: luis
Password:
Linux kali 4.0.0-kali1-686-pae #1 SMP Debian 4.0.4-1+kali2 (2015-06-03) i686
The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
-bash: cannot set terminal process group (3662): Inappropriate ioctl for device
-bash: no job control in this shell
이 명령이 올바른 접근 방식 agetty
입니까 ?TTY 생성텍스트 가상 콘솔?
답변1
이것은 의도적으로 설계된 것입니다.
내 생각에 내 원격 컴퓨터의 Linux 버전(Kali v2.0)에 어떤 종류의 버그가 있기 때문에 내 TTY 텍스트 콘솔은 내가 컴퓨터에 로컬로 앉아 를 누를 때만 시작됩니다.CtrlAltFn
이것은 실수가 아닙니다. 이것이 systemd Linux가 설계된 대로 작동하는 방식입니다. 커널 가상 터미널에 대한 TTY 로그인 서비스는 logind
포그라운드로 전환할 때 요청 시 시작됩니다. 원격으로 머신에 액세스하고 ConSpy를 사용하면 물론 다음을 수행할 수 있습니다.아니요커널 가상 터미널을 포그라운드로 전환합니다.
이
agetty
명령이 TTY 텍스트 가상 콘솔을 생성하는 올바른 방법입니까?
예, 아니오. 예, 이것은게티/로그인 서비스. 아니요, 자체적으로 가상 터미널을 생성하지 않습니다. 아니요, 직접 실행하지는 않습니다.
앞서 언급했듯이 logind
이렇게 하세요. 각 가상 터미널에는 systemd라는 서비스가 있습니다. 이것이 실행되는 것입니다. 서비스를 수동으로 시작하거나 요청 시 시작할 수 있습니다.autovt@ttyN.service
agetty
logind
시스템 문제 screen
및 tmux
시스템 관련 문제.
물론 앞서 언급했듯이 커널의 가상 터미널 하위 시스템과 ConSpy를 screen
시스템의 서버 및 클라이언트 부분 으로 사용하고 있습니다 tmux
. screen
또는 사용으로 전환할 수 있습니다 tmux
.
screen
문제는 and tmux
가 systemd와 잘 상호 운용되지 않는다는 것입니다. 이는 알려진 시스템 문제이며 의도적으로 설계된 것입니다. systemd에서 서비스로 직접 관리되는 로그인 세션의 서버 부분을 시작하면 screen
(서비스가 수행하고 모드에서 SSH를 실행할 때 서비스가 수행하는 것처럼) systemdtmux
autovt@ttyN.service
sshd@connection.service
Accept=yes
로그아웃 시 서버 종료, 설계상 서비스가 종료되면 서비스에 남아 있는 모든 프로세스가 종료되고 이러한 로그인 세션 서비스에서 로그아웃하는 것도 종료된 것으로 간주됩니다.
세상에는 변경을 포함하여 이 디자인 충돌에 대해 사용할 수 있는 여러 가지 해결 방법 이 있습니다 [email protected]
.screen
tmux
그 자체호스팅 서비스를 입력하세요. 따라서 시작 screen
하거나 tmux
로그인하여 대화형으로 실행할 필요가 없습니다 . systemd를 통해 시작 및 중지된 본격적인 서비스로 시작할 수 있습니다.
이 시점에서 백그라운드 서버 프로세스에 포함되거나 파생된 모든 것은 기껏해야 과도하게 엔지니어링되었습니다 screen
.tmux
모두이는 systemd가 관리 screen
하거나 tmux
서비스가 수행해야 하는 작업이며 서버를 "보호"할 필요가 없습니다. (아이러니하게도 screen
systemd tmux
의 문제는끝나고 나면 더 있어요대화형 로그인 세션에서 프로세스를 안전하고 안정적으로 "데몬화"하는 것이 사실상 불가능한 이유에 대한 예를 들어보세요. )
대안
대안을 언급하셨으니 여기에 또 다른 대안이 있습니다. nosh에는 대안이 있습니다.사용자 공간가상 터미널 시스템. systemd에서 nosh 서비스 관리자와 그 아래의 일부 nosh 및 서비스를 실행하고 SSH 로그인 세션을 통해 시뮬레이션된 터미널과 통신할 수 있습니다. (현재처럼 장치 이름을 직접 연결하지 않도록 ConSpy를 조정하면 vcsa 호환 디스플레이 버퍼를 사용할 수 있으므로 ConSpy를 사용하여 시뮬레이션된 터미널을 볼 수도 있습니다.) "데몬화"하지 않고 한 가지 작업만 수행합니다. 터미널이며 의사 터미널의 메인 끝과 시뮬레이션된 디스플레이 및 입력 사이에 위치합니다.ttylogin@vcN-tty
terminal-emulator@vcN
console-ncurses-realizer
console-terminal-emulator
이렇게 하면 여러 가지 측면 이점이 있습니다. 커널 공간 설계 제약에 의해 제한되지 않으므로 커널에 내장된 에뮬레이터 프로그램보다 더 완전한 DEC VT 에뮬레이션을 제공합니다. 일반적인 DEC 제어 시퀀스를 사용하여 터미널의 크기를 원하는 대로 조정할 수 있습니다. 단말기는 안전을 위해 자동으로 재설정되며,로그아웃 후 바로다음번 로그인이 호출될 때보다는
추가 읽기
- https://unix.stackexchange.com/a/194218/5132
- 레나트 포터링(2011-05-19).[버그?] systemd에서 화면이 제대로 작동하지 않습니다.. systemd - 개발.
- "systemd를 사용하여 자동으로 시작하세요".멀티플렉서.아치 위키.
- 폴 이글턴(2014-11-06). openssh: systemd 연결이 끊어졌을 때 screen 세션이 종료되는 것을 방지합니다.. 요크 투 프로젝트.
- SSH 연결을 끊으면 tmux 세션이 종료됩니다.
- 조나단 데보인 폴라드(2015)."systemd에서 nosh 서비스 관리 실행". 데비안 바이너리 패키지. 무언가를 먹다. JdeBP 소프트웨어.
- 조나단 데보인 폴라드(2015).소심한 관리자를 위한 설치방법 무언가를 먹다. JdeBP 소프트웨어.
- 조나단 데보인 폴라드(2015)."사용자 공간 가상 터미널". 스낵 가이드. 1.20. 무언가를 먹다. JdeBP 소프트웨어.
- 조나단 데보인 폴라드(2015).사용자 공간 가상 터미널 둘러보기 무언가를 먹다. JdeBP 소프트웨어.
- https://askubuntu.com/a/674147/43344
- 조나단 데보인 폴라드(2015)."상속과 악마의 오류"."service" 명령에 더 이상 문제가 없습니다.. 무언가를 먹다. JdeBP 소프트웨어.