systemd를 사용하여 데스크탑에 자동 로그인하려면 어떻게 해야 합니까?

systemd를 사용하여 데스크탑에 자동 로그인하려면 어떻게 해야 합니까?

가급적이면 로그인 관리자를 사용하지 않고 데스크탑 환경에 자동으로 로그인하도록 systemd를 구성하려면 어떻게 해야 합니까? 저는 아치 리눅스를 사용하고 있습니다.

답변1

이에 대한 설명은ArchWiki:

[email protected]복사하여 비슷한 새 서비스 파일을 만듭니다./etc/systemd/system/

cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

이는 기본적으로 기존 파일을 자유롭게 수정할 수 있는 [email protected]새 파일로 복사합니다. 사이트별 단위 파일이 저장되는 위치이므로 [email protected]복사됩니다 . 패키지에서 제공하는 단위 파일이 포함되어 있으므로 거기에서 아무것도 변경하면 안 됩니다./etc/systemd/system/usr/lib/systemd/system

[email protected]그런 다음 이를 자동 로그인하려는 tty(예: tty1)의 getty 서비스에 심볼릭 링크해야 합니다 .

ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

여기까지는 여전히 일반적인 [email protected]파일과 동일하지만, 가장 중요한 부분은 [email protected]실제로 자동으로 로그인되도록 수정하는 것입니다. 그렇게 하려면 ExecStart줄을 읽도록 변경하기만 하면 됩니다.

ExecStart=-/sbin/agetty -a USERNAME %I 38400

ExecStartin 라인 [email protected]과 라인 사이의 차이점 은 agetty가 사용자 이름 USERNAME을 사용하여 사용자를 자동으로 로그인하도록 지시하는 것 [email protected]뿐입니다 .-a USERNAME

이제 systemd에게 데몬 파일을 다시 로드하고 서비스를 시작하라고 지시하기만 하면 됩니다.

systemctl daemon-reload
systemctl start [email protected]

(tty1에 이미 로그인한 경우 서비스가 제대로 시작될지 확신할 수 없습니다. 가장 안전한 방법은 아마도 서비스를 시작하는 대신 재부팅하는 것입니다.)

그런 다음 X를 자동으로 시작하려면 다음 코드 조각 ~/.bash_profile위키다시):

if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
    exec startx
fi

데스크탑 환경을 시작하려면 수정해야 하며 ~/.xinitrc, 이를 수행하는 방법은 DE에 따라 다르며 아마도 ArchWiki에도 설명되어 있을 것입니다.

답변2

IMO는아치 위키현재 훨씬 간단한 솔루션을 권장합니다.

도우미( systemctl edit getty@tty1)를 실행하거나 수동으로 수행한 작업을 수행합니다.

mkdir -p /etc/systemd/system/[email protected]/
touch /etc/systemd/system/[email protected]/override.conf

두 가지 방법 모두에서 입력하려는 텍스트는 (꼭 바꾸세요사용자 이름적절하게):

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

메모: 빈 줄이 중요해요! 빈 줄은 먼저 ExecStart 항목을 지우고 다음 줄은 새로운 exec 명령을 소개합니다.

이제 ( )를 다시 시작하면 이전에 사용자 이름/비밀번호 입력을 기다리는 것을 차단한 곳에서 shutdown -r 0효과가 발생합니다.... login: username (automatic login)


재부팅하고 자동 로그인한 후, 나와 마찬가지로 지금 이 시스템에 SSH로 접속하려면 다음을 실행해야 할 것입니다.

systemctl enable sshd.service

심볼릭 링크를 생성합니다(예 ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service': )

답변3

파일 (에 대한 심볼릭 링크 )을 직접 수정합니다./etc/systemd/system/getty.target.wants/[email protected]/lib/systemd/system/getty@service

-a/--autologin USERNAME다음 줄에 추가하세요 .

ExecStart=-/sbin/agetty --noclear %I $TERM

따라서:

ExecStart=-/sbin/agetty -a USERNAME %I $TERM

-o '-p -- \\u'로그인을 시작하지만 USERNAME여전히 비밀번호를 묻기 때문에 (현재 Arch 설치에 있는 대로) 제거할 수도 있습니다 .

재부팅 후 자동으로 로그인됩니다.

추신파일 이름을 로그인하려는 [email protected]이름으로 변경하세요.tty

답변4

지정된 사용자를 자동으로 자동 로그인할 수 있는 (get tty) 명령을 사용할 수도 있습니다 getty. 인수는 또는 getty일 수 있습니다 . 저는 Linux Debian Ubuntu를 실행 중이므로 이 명령을 다른 배포판에서 사용할 수 있는지 모르겠습니다.--autologin-a

getty -a <user>

관련 정보