systemd를 사용하여 데스크탑에 자동 로그인하려면 어떻게해야합니까? 환경에 자동으로 로그인하도록 systemd를 어떻게 구성 할

로그인 관리자를 사용하지 않고 데스크탑 환경에 자동으로 로그인하도록 systemd를 어떻게 구성 할 수 있습니까? 아치를 사용하고 있습니다.



답변

이것은 아치 위키에 설명되어 있습니다 :

getty@.service복사하여 다음 과 유사한 새 서비스 파일을 작성하십시오./etc/systemd/system/

cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service

기본적으로 기존 getty@.service파일 autologin@.service을 새 파일로 복사하여 자유롭게 수정할 수 있습니다. /etc/systemd/system사이트 별 단위 파일이 저장되는 위치로 복사 됩니다. /usr/lib/systemd/system패키지에서 제공하는 단위 파일을 포함하므로 아무것도 변경하지 마십시오.

그런 다음 autologin@.servicetty1에 대해 자동 로그인하려는 tty의 getty 서비스에 해당 링크를 symlink해야 합니다.

ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service

지금까지는 여전히 일반 getty@.service파일 과 동일 하지만 가장 중요한 부분은 autologin@.service실제로 자동으로 로그인 하도록 수정하는 것입니다. 그렇게하려면 ExecStart줄을 바꾸어 읽기만하면됩니다.

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

사이의 차이 ExecStart라인 getty@.serviceautologin@.service전용입니다 -a USERNAME자동으로 사용자 이름 사용자 이름으로 사용자를 기록 agetty를 알려줍니다.

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

systemctl daemon-reload
systemctl start getty@tty1.service

(tty1에 이미 로그인 한 경우 서비스가 제대로 시작되는지 확실하지 않은 경우 가장 안전한 방법은 서비스를 시작하는 대신 재부팅하는 것입니다).

X를 자동으로 시작하려면 다음 스 니펫을 ~/.bash_profile( 위키에서 다시 가져온)에 삽입하십시오 .

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

~/.xinitrc데스크탑 환경을 시작하려면 DE 를 사용하여 변경하는 방법을 수정해야 하며 아마도 아치 위키에도 설명되어 있습니다.


답변

파일 /etc/systemd/system/getty.target.wants/getty@tty1.service(으로의 심볼릭 링크)을 직접 수정하십시오 /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하지만 여전히 암호를 요구 하므로 (현재 아치 설치에있는) 제거 할 수도 있습니다.

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

변경 파일 이름 getty@tty1.service받는 tty당신이에 로그인 할 수 있습니다.


답변

IMO의 아치 위키는 현재 매우 간단한 해결책을 권장합니다 :

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

mkdir -p /etc/systemd/system/getty@tty1.service.d/
touch /etc/systemd/system/getty@tty1.service.d/override.conf

어떤 방법 으로든 입력하려는 텍스트는 다음과 같습니다 ( 사용자 이름을 적절하게 변경하십시오 ).

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

참고 : 빈 줄이 중요합니다! (확실히 나는 왜 그런지 모르겠다 …)

이제 다시 시작 ( 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')


답변