대화형으로 실행하는 명령이 아닙니다.

대화형으로 실행하는 명령이 아닙니다.

내가 읽고 있어요아푸에계속해서 프로그램을 참조 login하지만 내 OS(Ubuntu)에서 이 프로그램이 무엇을 하고 있는지 여전히 알 수 없습니다.

§8.11:

일반적으로 실제 사용자 ID는 login(1)로그인할 때 프로그램에 의해 설정되며 절대 변경되지 않습니다. login수퍼유저 프로세스이기 때문에 setuid 호출 시 세 개의 사용자 ID를 모두 설정합니다.

ps aux | grep login:

root       840  0.0  0.0  70732  6120 ?        Ss   15:13   0:00 /lib/systemd/systemd-logind
root      1120  0.0  0.0 419680  9468 ?        Sl   15:13   0:00 gdm-session-worker [pam/gdm-autologin]
tianhe    1151  0.0  0.1 445184 20540 ?        SLl  15:13   0:05 /usr/bin/gnome-keyring-daemon --daemonize --login
tianhe   10838  0.0  0.0  21536  1060 pts/0    S+   21:50   0:00 grep --color=auto login

간단히 말해서, login이 프로그램은 운영 체제에 어떤 기능을 제공합니까?

어떤 상황에서 사용되거나 실행되나요?

login그런데 와 비교하면 어떤가요 ssh?

답변1

대화형으로 실행하는 명령이 아닙니다.

login명령은 일반적으로 명령줄에 입력되지 않습니다.
-수동 login. IBM AIX 7.2

한때 그랬습니다. 이 접근 방식은 1980년대에 효과가 있었고 C-셸 사용자는 외부 프로그램에 연결하고 수퍼유저의 UID로 설정된 해당 프로그램으로 셸 프로세스를 덮어쓸 login수 있는 편리한 내장 명령 도 갖고 있었습니다.execlogin

그러나 오늘날의 운영 체제는 더 이상 1980년대 BSD처럼 작동하지 않습니다. ㅏ로그인 세션setsenv(그런데, 이것은 거기에서 논의된 세션 유형입니다.) 프로세스에서 제대로 시작하기에는 단방향 트랩도어(사용자 보안 컨텍스트, 제어 그룹, UID "taint" 플래그 변경, AIX 등)가 너무 많습니다. 임의의 사용자 새 로그인 세션이미 여기에사용자 로그인 세션.

그럼에도 불구하고 1990년대 PAM의 출현으로 인해 login새 프로그램에 의해 덮어쓰여질 쉘 프로세스는 더 이상 1980년대처럼 트리의 최상위 프로세스가 아닙니다. 이제 이는 감독자 프로세스의 하위 프로세스이며 PAM 세션 설정 및 해제를 담당합니다.

이것이 "데몬화"가 오류이고 login기존 로그인 세션에서 실행하는 것이 실제로 현명하지 않은 이유입니다.

시스템 프로그램입니다.

login~라고 불리는단말기 로그인 서비스일반적으로 서비스 또는 서비스 관리 인프라가 일부 환경 변수를 설정한 후 터미널 장치를 열고 라인 규칙을 초기화/푸시하고 이를 제어 터미널로 설정하고 일부 제어 시퀀스로 터미널을 초기화합니다.

  • 1987년 AT&T Unix System 5 릴리스 4에서는 이러한 서비스가 ttymon서비스 액세스 기능의 일부로 관리되었습니다. 오늘날에도 OpenSolaris와 Illumos 및 Schillix와 같은 파생 제품에서 이러한 내용을 볼 수 있습니다.
  • systemd Linux 운영 체제에서 이는 서비스입니다(일반적으로 서비스의 별칭). 이것은 우주의 시스템 5 측면에서 주목할 만한 이상한 현상으로, 거의 아무도 호출하지 않는 상황에서도 여전히 프로그램을 사용하여 호출합니다.autovt@somethinggetty@somethinggettylogin
  • 운영 체제에서 사용Nosh 도구 세트서비스 관리의 경우 이것이 서비스입니다.ttylogin@something
  • 우주의 BSD 측에서 nosh 서비스 관리가 사용되지 않으면 이러한 서비스는 표에 따라 프로세스 #1에 의해 생성된 서비스입니다 /etc/ttys.

가상 또는 실제 터미널에 로그인하는 경우 login대화형 로그인 셸을 호출하기 전에 비밀번호와 사용자 이름을 입력하라는 메시지가 표시됩니다.

loginSSH 로그인에는 사용되지 않습니다. 사용되지도 않음GUI로그인. 둘은 다르게 작동하며 둘 다 다른 프로그램을 사용합니다. login텍스트 사용자 인터페이스를 통해 터미널과 대화할 것으로 예상됩니다.

그것예전 Berkeley rlogin 시스템에서 사용되었지만 지금은 사용하면 안 됩니다. 소위 버클리 "r-" 순서에 대한 추가 논의는 이 답변의 범위를 훨씬 벗어납니다. 그래서 저는 일이 1980년대와 같은 방식으로 진행되지 않는다고 말씀드리고 싶습니다.

추가 읽기

답변2

창 세션에 로그인되어 있을 수 있으며, 이 경우 디스플레이 관리자 xdm... gdmkdm사용자를 로그인합니다. 하지만 로그인하는 다른 방법도 있습니다. 예를 들어 (지시한 대로) 웹을 통해 사용할 수 있습니다 ssh. 로컬로 로그인했지만 윈도우 시스템에는 로그인하지 않은 경우 다른 로그인 절차가 필요합니다. 로그인이 들어가는 곳입니다.

을 누르고 ctrlaltf1로그인하여 실행 중인 프로세스를 살펴보세요. 로그인 상태를 유지하는 이유

관련 정보