리눅스에서 의사 터미널을 복제


7

Redhat 상자에서 [Red Hat Enterprise Linux AS 릴리스 4 (Nahant 업데이트 3)]

종종 우리는 두 사람이 같은 의사 터미널에 할당되는 것을 보게됩니다. 예를 들면 다음과 같습니다.

$who am i
user1 pts/4        Dec 29 08:38 (localhost:13.0)
user2 pts/4        Dec 29 09:43 (199.xxx.xxx.xxx)
$who -m
user1 pts/4        Dec 29 08:38 (localhost:13.0)
user2 pts/4        Dec 29 09:43 (199.xxx.xxx.xxx)
$whoami
user2

"who am i"는 두 개의 행을 반환하기 때문에 스크립트에서 문제가 발생합니다. 두 명령 사이에 차이점이 있으며 문제를 해결하기 위해 스크립트를 변경할 수 있습니다. 그러나 여전히 두 명의 사용자가 동일한 터미널로 돌아 오는 것을 귀찮게합니다. 죽은 세션과 관련이있을 수 있습니다. 누구든지 두 개의 (고유하지 않은) pt 번호가 할당되는 이유 및 / 또는 향후 어떻게 방지 할 수 있는지 설명 할 수 있습니까?

답변:


1

최신 버전의 Red Hat을 사용해 보셨습니까? 4.3은 꽤 오래되었고 최신 4.x 릴리스는 4.8입니다. 또한 Red Hat 5는 5.4 버전으로, 큰 발전입니다. Red Hat을 구매하지 않아도 최신 버전을 사용하려면 Red Hat과 바이너리 호환되는 CentOS를 사용해보십시오.


동의하지만 회사 환경에서는 그보다 더 관련이 있습니다. 업그레이드가 예정되어 있지만 여전히 해결 방법입니다. 우리는 다른 * nix 시스템들 사이에서 누가 다른 행동을했는지 알아 차 렸습니다.
bobtheowl2

1

서버 업그레이드에 대한 조언은 적절합니다.

실패하면 다른 응용 프로그램이 아닌 일부 응용 프로그램을 업그레이드 할 수 있습니다. 어느 구성 요소와 얼마나 멀리 업그레이드해야 하는가는 "학생을위한 연습으로 남습니다".

먼저 이런 일이 발생할 때 사람들이 어떤 터미널 에뮬레이터 프로그램을 사용하고 있는지 알아보기 위해 몇 가지 테스트를 수행하려고합니다. Xterm입니까? 그렇다면 "Red Hat Enterprise Linux 3 업데이트 8 릴리스 정보" -http : //mirror.centos.org/centos/3/docs/release-notes/as-amd64/RELEASE-NOTES-U8-x86_64-en을 참조하십시오. .html

xterm에 대한 버그 수정은 다음과 같습니다. "이중 utmp 항목을 쓰지 마십시오"

따라서 이것은 아마도 xterm을 적어도 xterm-179-6.EL3으로 업그레이드해야한다고 생각하게 할 것입니다 (버전 번호가 왜 EL3인지 말하지 마십시오. 모릅니다)

도움이 되었기를 바랍니다!
-pbr


xterm-192-1이 있다는 것을 알기 전까지는 좋은 소리였습니다. 그러나 두 명의 불쾌한 사용자 (다른 사람에게 표시되는 사용자)가 xterm을 많이 사용하기 때문에 나머지 그룹에서 발생하는 것을 보지 못했지만 여전히 xterm과 관련이있을 것 같습니다.
bobtheowl2

꿰매다. 내가 당신을 위해 그것을 못 박았지만. 어쩌면 내가했다; 이 사용자들이 다른 'bin'디렉토리에있는 xterm을 실행하고 있습니까? (즉, 시스템의 xterm 프로그램을 실행하고 있습니까?) 'sudo updatedb'(점심으로 이동)와 'sudo locate xterm | grep bin'을 시도하십시오. 시스템에서 xterm이라는 모든 실행 파일을 찾는 완벽한 방법은 아니지만 대체 방법 'sudo find / -name xterm-executable -print'보다 훨씬 빠르게 실행됩니다. locate / grep 접근 방식이 xterm의 '악의적 인'버전을 식별하지 못하는 경우에만이 마지막 명령을 시도하십시오.
pbr

"xterm-179-6.EL3"은 "Enterprise Linux 3"일 수 있으며 최신 xterm 버전이거나 RHEL에 필요한 특정 항목이있는 버전 일 수 있습니다.
15 분 52 초

bobtheowl2-답장을받지 못했습니다-시스템의 다른 곳에 설치된 다른 xterm 실행 파일이 있는지 확인하기 위해 시스템을 검색 했습니까? 기본 xterm 패키지가 192-1이라고해서 다른 디렉토리에 오래된 실행 파일이 없을 수는 없습니다.
pbr

1

나는 utmp 파일이 정리됩니다 무엇 이건 - - 여기이 문제를 재현 할 수 있지만, utmp 파일 업데이트는 도우미 프로그램에 의해 수행 utempter/usr/lib/utempterxterms을 어떤 이유로 죽은 돌을 살해되고, 그래서 만약 (예를 들면, xterm에 의해 호출되는, 가상 메모리가 소진됨에 따라 정리할 기회가 없을 수 있습니다.

또한 http://rhn.redhat.com/errata/RHSA-2004-174.html 에서 보안 취약점이 수정 되었지만 문제의 사용자가 의도적으로 악용하여 기능 장애를 일으킬 가능성이없는 것 같습니다.

백그라운드에서 xterm을 실행하고 utmp를 정리할 기회를주지 않고 종료하여 동작을 재현 할 수 있는지 확인하십시오.

누가 $
$ xterm &
[1] 6229
누가 $
죽이기 -9 6229
누가 $

그리고 한 부두교 이론 : xtermutmp 동작을보다 신중하게 설정하는 설정이 있습니다. 일반적으로 기본적으로 활성화되어 있으며

XTerm * pty 핸드 셰이크 : false
에서 ~/.Xresources또는 시스템 전체에 /etc/X11/Xresources/xterm. 그럴 가능성은 없지만 단지 생각 일뿐입니다.

한 가지 해결 방법은 rxvt기존 xterm 구성 설정에 응답하고 Tektronix 4014 라인 드로잉 그래픽 에뮬레이션 기능을 포함하지 않고 훨씬 적게 사용하는 더 작은 드롭 인 교체 와 같은 다른 X 터미널 에뮬레이터를 사용하도록 사용자를 설득하거나 강요하는 것입니다. 실행할 메모리.


이런 일이 발생하는 사용자는 확실히 악의적이지 않습니다. 나는 그것을 재현 할 수 없었습니다. 나는 심지어 심지어 [putty / ssh 만 사용]조차도 이번 주 초에 오래된 utmp 항목이 있다는 것을 알았습니다. 이것은 내 VPN 연결이 딸꾹질 할 때와 일치하며 퍼티 창을 죽이고 다시 열어야했습니다. 당연히 오늘 여기서 재현 할 수 없습니다. 나는 utempter를 알지 못했지만 올바른 방향으로 보입니다.
bobtheowl2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.