언제 로그인하지 않고 터미널을 열 수 있나요?

언제 로그인하지 않고 터미널을 열 수 있나요?

Linux, 특히 Ubuntu(14.04 이후) 시스템에 대해 이야기합니다.

사례 1 - 지적한 바와 같이이 답변, 의사 터미널에 할당된 프로세스는 로그인할 필요가 없습니다. 예: cups. 어쨌든 그들은 그렇지아니요명령 출력에 나열됩니다 who.

사례 2 - GUI 로그인을 수행하면 실행 파일 gnome-terminal(또는 xfce4-terminal데스크톱 환경에 따라 )이 사용자와 함께 많은 의사 터미널을 열 수 있습니다.이미로그인한 및의사 터미널을 열면 who명령 출력에 새 줄이 나타납니다.

그래서,

1) 프로세스와 사용자 모두 터미널을 열 수 있으므로 공통된 특성(비슷한 방식으로 작동할 수 있으므로)과 차이점이 있어야 합니다. ~에서시스템 쉘, 사용자(터미널을 열 때 분명히 로그인이 필요하고 who명령에 나열됨)와 프로세스(터미널을 사용하기 위해 로그인이 필요하지 않으며 명령에 나열되지 않음) who의 차이점은 무엇입니까 ? 내 의심은 프로세스가 필요할 때 시스템의 확인 없이 터미널을 열 수 있는 반면 사용자는 항상 로그인되어 있어야 한다는 것입니다.

2) 어떻게 할 수 있습니까?고유한GUI 로그인 터미널 에뮬레이터로 열린 의사 터미널에 대한 모든 로그인을 "잠금 해제"하시겠습니까? via 를 열면 /dev/tty1아무런 효과가 없습니다 CtrlAltF1.

답변1

프로세스는 실행 가능한 바이너리의 실행 중인 인스턴스입니다. 모든 파일 등과 같은 모든 프로세스는 특정 사용자에게 속합니다. (한 프로세스의 사용자 ID가 다르기 때문에 조금 복잡하지만 대부분 동일합니다.)

프로세스가 파일, TCP 소켓 등을 열거나 생성할 수 있는 것처럼 터미널 라인(tty)은 언제든지 모든 프로세스에서 열 수 있습니다. 이와 관련하여 터미널에는 특별한 것이 없습니다.

이것은 오래된 사용자 수준 개념으로, 로그인을 추적하기 위해 utmp/wtmp 데이터베이스가 존재합니다. 그래픽 로그인 관리자는 전체 그래픽 로그인에 속하는 레코드를 업데이트하고(다소 의미 있음) 터미널 에뮬레이터는 특정 터미널 라인에 속하는 레코드를 자발적으로 업데이트(또는 업데이트하지 않음)합니다(제 생각에는https://bugzilla.gnome.org/show_bug.cgi?id=747046,무의미한). 이는 터미널이 그래픽 에뮬레이터가 아닌 실제 터미널이었던 시절부터 왔으며, 물론 누가 어디서 로그인했는지 추적하는 것이 합리적이었습니다.

who제 생각에는 그래픽 터미널 에뮬레이터를 여는 것이 "로그인"을 의미하거나 열린 터미널 창/탭에 대해 로그 항목을 생성해야 하며 유사한 유틸리티에서 이를 보고해야 한다는 것은 오래되고 나쁜 전통입니다 .

who어느 정도 올바르게 유지 관리되는 utmp/wtmp 파일에서 정보를 인쇄하는 것과 같은 유틸리티 도 유용성과 신뢰성이 다소 제한되어 있습니다.

답변2

user설명을 토대로 볼 때 'and'라는 단어를 잘못 사용하신 것이 확실합니다 process. 내가 보기에는 당신이 무언가를 사용자나 프로세스(우연히 그들 중 하나)라고 신뢰하는 것 같습니다. 이것은 전혀 사실이 아닙니다.

실행 가능한 프로그램 코드의 각 실행 인스턴스 ("자동으로"(예: 부팅 프로세스의 일부) 또는 사용자 상호 작용(예: 마우스 클릭)에 의해 시작되는지 여부)을 이라고 합니다 process. user부팅 프로세스, 이러한 프로세스를 일반적으로 슈퍼유저라고 합니다 root.

관련 정보