systemd를 사용하여 데스크탑에 자동으로 로그인하는 방법은 무엇입니까?

systemd를 사용하여 데스크탑에 자동으로 로그인하는 방법은 무엇입니까?

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

답변1

이것은건축 위키피디아:

[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의 getty 서비스(예: tty1)에 심볼릭 링크를 연결해야 합니다 .

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

ExecStart와 행 의 [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

국제해사기구아치스 위키현재는 더 간단한 솔루션이 권장됩니다.

도우미( 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 명령을 소개합니다.

이제 restart() 시 사용자 이름/비밀번호 입력을 기다리는 것을 차단하는 것과 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. 이 명령에 대한 인수는 Linux Debian Ubuntu를 실행 중이므로 다른 배포판에서 이 명령을 사용할 수 있는지 모르겠습니다 .getty--autologin-a

getty -a <user>

관련 정보