로그인 셸에 대한 utmp 항목을 만들어야 합니까?

로그인 셸에 대한 utmp 항목을 만들어야 합니까?

내 관찰:

  1. 새 터미널을 열면(난쟁이/lx):

    • 새로운/dev/pts/X사용
    • who이들 중 어느 것도 나열되어 있지 않습니다.
    • 첫 번째 문자 echo $0는 가 아니므 -로 로그인 쉘이 아닙니다.
  2. ssh동일한 사용자를 사용하여 동일한 컴퓨터에 들어가면

    • 새로운/dev/pts/X사용
    • who이것들을 나열해 보세요
    • 첫 번째 문자 echo $0-이므로 로그인 쉘입니다.
  3. 새로 열면단말기 (ctrl-alt-Fxx)

    • 새로운/dev/ttyXX사용
    • who이것들을 나열해 보세요
    • 첫 번째 문자 echo $0-이므로 로그인 쉘입니다.
  4. 내가 달리면su -

    • 동일한/dev/pts/X사용( su -발행된 곳)
    • who이들 중 어느 것도 나열되어 있지 않습니다.
    • 첫 번째 문자 echo $0-이므로 로그인 쉘입니다.

결론적으로:

  1. 새 pty를 생성해도 utmp(?)에 항목이 자동으로 생성되지 않습니다.

질문:

  1. who현재 로그인된 사용자 목록을 표시하는 경우 각 로그인 셸(?)에 대한 항목이 표시되어야 합니다. 하지만 루트 사용자 로그인 항목은 표시되지 않습니다 su -. 이유는 무엇입니까?

편집하다:이 시점에서 내가 알아낼 수 있는 또 다른 점은 "utmp에 새 항목을 만들기 전에 새 pty/tty 및 로그인 셸이어야 합니다."입니다.

답변1

첫째, who로그인 쉘이나 그와 유사한 것에 대해서는 신경 쓰지 마십시오. 단지 utmp항목을 덤프합니다 . 비로그인 터미널, 그래픽 세션, FTP 연결(완전히 구성된 tty "라인" 이름 포함)에 대한 항목이 있을 수 있습니다.

2. utmp 항목 생성수동– 로그인을 처리하는 프로그램이 호출될 때만 항목을 얻을 수 있습니다 pututline(…). 예를 들어 sshd는 항상 이 작업을 수행하고 터미널 에뮬레이터는자주이렇게 하십시오(항상 그런 것은 아님). su절대로 이렇게 하지 마십시오.

( su새로운 pty를 할당하지 않기 때문에 utmp 항목도 추가할 수 없다는 점을 기억하십시오. 그렇지 않으면 동일한 tty에 대해 여러 항목이 생성되어 일부 프로그램을 혼란스럽게 할 수 있습니다.)

관련 정보