Linux 터미널은 재부팅 후 한 번만 자동으로 로그인됩니다.

Linux 터미널은 재부팅 후 한 번만 자동으로 로그인됩니다.

Arch Linux 시스템을 다시 시작한 후 내 컴퓨터가 특정 사용자로 자동 로그인되도록 하려고 합니다. 나는 팔로우한다Arch Linux Wiki의 가이드, # systemctl edit getty@tty1다음 줄을 실행하고 붙여넣습니다.

[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM

이것은 작동하며 자동으로 로그인됩니다. 그런데 다른 사람으로 로그인하려고 CTRL+D를 눌러 로그아웃하면 자동 로그인이 실행되어 바로 다시 로그인됩니다. 시작 후 처음에만 자동 로그인하고 수동으로 로그아웃할 때는 아무 작업도 수행하지 않도록 자동 로그인을 구성하려면 어떻게 해야 합니까?

답변1

이것이 내가 현재 사용하는 것입니다:

  1. # systemctl edit getty@tty1이지만 대신 사용자 정의 스크립트를 실행합니다.

    [Service]
    Type=simple
    ExecStart=
    ExecStart=/home/[USER]/.tty1
    
  2. cat /home/[USER]/.tty1:

    #!/usr/bin/bash
    
    if [ -f /run/user/1000/tty1started ]  ; then
      /usr/bin/agetty --noclear tty1 $TERM 
    else
      date &> /run/user/1000/tty1started
      /usr/bin/agetty --autologin [USER] --noclear tty1 $TERM
    fi
    

    chmod +x( 스크립트를 확인하세요 )

이는 date제가 다른 용도로도 사용하고 있기 때문입니다. 그러나 검사는 실제로 파일이 존재하는지 확인하는 것뿐입니다( touch이것으로 충분합니다). 파일은 RAM( )에 기록되므로 /run자동으로 삭제됩니다.

노트:

  • 1000사용자 ID 변경 ( id -u)
  • pam몇 가지 경고가 표시되지만 ioctl모든 것이 잘 작동합니다.

답변2

제가 아는 한, agetty에는 이 기능이 없습니다. 따라서 이 작업을 직접 수행해야 합니다. 예를 들어 이 실행에 대한 미리 보기 로그인이 있는 경우 bash/perl/whatever 스크립트를 사용하여 상태를 저장한 다음(디렉토리는 재부팅 후 다시 시작됩니다) 일치하는 getty를 실행해야 합니다.

문제는 이것이 작동하는 데 정말로 필요한 경우 tty2로 변경하고(Alt+F2 사용) 정상적으로 로그인할 수도 있다는 것입니다.

인사

답변3

측면 답변: 다른 tty로 전환하는 것 외에(에서 언급한 대로)트레키의 답변), 현재 사용자를 새 사용자로 바꿀 수 있습니다

su otherusername

다른 사용자의 셸을 종료하면 자신의 세션으로 돌아갑니다.

(슈퍼유저 계정으로 전환하기 위한 것이라고 생각하는 사람도 있습니다 . 실제로 는 su다른 사용자로서 명령을 내릴 수 있도록 하는 "대체 사용자"입니다. 루트로 로그인하지 않은 경우 명령을 실행하면 su otherusername다른 사용자에 대한 메시지가 표시됩니다. su일반 스크립트나 셸 리소스 스크립트는 실행되지 않습니다 .profile. 다른 사용자가 실행하는 새 셸에서 현재 작업 디렉터리와 환경 변수가 유지됩니다. 전체 로그인 세션을 원하면 하이픈을 사용하세요. 옵션 su:

su - otherusername

)

관련 정보