Wie kann ich systemd so konfigurieren, dass ich mich automatisch bei meiner Desktop-Umgebung anmelde, vorzugsweise ohne Verwendung eines Anmeldemanagers? Ich verwende Arch Linux.
Antwort1
Beschrieben wird dies imArchWiki:
Erstellen Sie eine neue Servicedatei ähnlich wie
[email protected]
durch Kopieren in/etc/systemd/system/
cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
Dadurch wird das bereits Vorhandene [email protected]
in eine neue Datei kopiert [email protected]
, die frei geändert werden kann. Die Kopie erfolgt, /etc/systemd/system
weil dort standortspezifische Unit-Dateien gespeichert werden. /usr/lib/systemd/system
enthält von Paketen bereitgestellte Unit-Dateien, daher sollten Sie dort nichts ändern.
Sie müssen dies dann [email protected]
mit dem Getty-Dienst für das TTY verknüpfen, bei dem Sie sich automatisch anmelden möchten, zum Beispiel für TTY1:
ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
Bis jetzt ist dies immer noch dieselbe [email protected]
Datei wie die normale, aber der wichtigste Teil ist, die Datei so zu ändern, [email protected]
dass Sie sich tatsächlich automatisch anmelden. Dazu müssen Sie nur die ExecStart
Zeile so ändern, dass sie lautet
ExecStart=-/sbin/agetty -a USERNAME %I 38400
Der Unterschied zwischen der ExecStart
Zeile in [email protected]
und [email protected]
besteht lediglich darin -a USERNAME
, dass agetty anweist, den Benutzer mit dem Benutzernamen USERNAME automatisch anzumelden.
Jetzt müssen Sie systemd nur noch anweisen, seine Daemon-Dateien neu zu laden und den Dienst zu starten:
systemctl daemon-reload
systemctl start [email protected]
(Ich bin nicht sicher, ob der Dienst ordnungsgemäß gestartet wird, wenn Sie bereits bei tty1 angemeldet sind. Am sichersten ist es wahrscheinlich, einfach einen Neustart durchzuführen, anstatt den Dienst zu starten.)
Wenn Sie X dann automatisch starten möchten, fügen Sie den folgenden Ausschnitt in Ihre ~/.bash_profile
(entnommen ausdas Wikiwieder):
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
Sie müssen ~/.xinitrc
Ihre Desktopumgebung zum Starten ändern. Wie das geht, hängt von der DE ab und wird wahrscheinlich auch im ArchWiki beschrieben.
Antwort2
IMO, dieArch Wikiempfiehlt derzeit eine viel einfachere Lösung:
Führen Sie entweder den Helfer ( systemctl edit getty@tty1
) aus oder machen Sie es manuell wie ich:
mkdir -p /etc/systemd/system/[email protected]/
touch /etc/systemd/system/[email protected]/override.conf
Der Text, den Sie eingeben möchten (mit einer der beiden Methoden), ist (unbedingt ändernNutzernamepassend):
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
NOTIZ: Die leere Zeile ist wichtig! Die leere Zeile löscht zuerst den ExecStart-Eintrag, während die nächste Zeile einen neuen Exec-Befehl einführt.
Starten Sie nun ( shutdown -r 0
) neu und es wird etwas in der Art ... login: username (automatic login)
passieren, wo es vorher blockiert war, weil es auf die Eingabe von Benutzername und Passwort gewartet hat.
Wenn Sie wie ich jetzt nach dem Neustart und der automatischen Anmeldung per SSH auf dieses System zugreifen möchten, müssen Sie wahrscheinlich Folgendes ausführen:
systemctl enable sshd.service
Dadurch wird der symbolische Link erstellt (zB ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'
)
Antwort3
Ändern Sie die Datei direkt (die ein symbolischer Link zu ist ):/etc/systemd/system/getty.target.wants/[email protected]
/lib/systemd/system/getty@service
-a/--autologin USERNAME
An die Zeile anhängen :
ExecStart=-/sbin/agetty --noclear %I $TERM
Somit:
ExecStart=-/sbin/agetty -a USERNAME %I $TERM
Sie können auch entfernen -o '-p -- \\u'
(wie in der aktuellen Arch-Installation vorhanden), da dadurch die Anmeldung gestartet wird, USERNAME
aber dennoch nach dem Kennwort gefragt wird.
Nach dem Neustart werden Sie automatisch angemeldet.
PSÄndern Sie den Dateinamen [email protected]
in den Namen, bei dem tty
Sie sich anmelden möchten.
Antwort4
Sie können auch getty
den Befehl (get tty) verwenden, mit dem Sie den angegebenen Benutzer automatisch anmelden können. Das Argument getty
kann entweder --autologin
oder sein -a
. Ich verwende Linux Debian Ubuntu, daher weiß ich nicht, ob dieser Befehl in anderen Distributionen verfügbar ist.
getty -a <user>