Debian 9.2.1 コマンドラインからの自動ログイン

Debian 9.2.1 コマンドラインからの自動ログイン

ちょうど安価なサーバーとして古いラップトップにDebian 9.2.1をインストールしました。私以外は誰にでもマシンに物理的にアクセスできないため、SSHの代わりにラップトップ自体を使用する必要がある場合は、ログインする必要がないようにブート時に自動的にログインしたいと思います。グラフィカル環境がインストールされておらず、これらの方法のいずれも機能しませんでした。次のようないくつかのソリューションを試しました。https://superuser.com/questions/969923/automatic-root-login-in-debian-8-0-console-only しかし、ログインプロンプトがまったく表示されず、Debianを再インストールしました。グラフィカル環境なしで自動ログインするには?ありがとうございます!

答え1

あなたのものを編集し、/etc/systemd/logind.conf次に#NAutoVTs=6変更します。NAutoVTs=1

を通じて生成;/etc/systemd/system/[email protected]/override.conf

systemctl edit getty@tty1

次の行を貼り付けます。

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux

有効に[email protected]してから再起動してください。

systemctl enable [email protected]
reboot

Arch Linuxのドキュメント:Getty

答え2

私はこの議論に許可された答えが仮想端末に関連していることを追加したいと思います。私の場合は、シリアル端末用のサービスファイルを別々に編集する必要がありました。ファイルは次の場所にあり、その行に追加するのと同じプロセスがトリックを実行します。/lib/systemd/system/[email protected]--autologin <user>

[Service]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --autologin root %I $TERM

答え3

特に、システムの損傷に関する@Keelanのコメントを考慮して、より徹底的な答えを追加したいと思います。

まず、プログラムを実行しているTTYが1つだけで他のttyにログインできないようにするには、TTYを編集して変更すると端末/etc/systemd/logind.confにログインできません。#NAutoVTs=6NAutoVTs=1

次に、ディレクトリとoverride.confファイルを作成します。

mkdir -p /etc/systemd/system/[email protected]
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux" >> /etc/systemd/system/[email protected]/override.conf

再起動しないでください。他の回答で述べたように、再起動せずに別のTTYにログインし、次のコマンドを実行してテストします。

systemctl daemon-reload
systemctl restart [email protected]

すべてがうまくいったら、再起動してください。

しかし、自動的にログインする代わりにプログラムを実行したい場合はどうすればよいですか? 次に、次を使用します。

mkdir -p /etc/systemd/system/[email protected]
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/path/program -arg1 -arg2" >> /etc/systemd/system/[email protected]/override.conf
echo "StandardInput=tty"  >> /etc/systemd/system/[email protected]/override.conf
echo "StandardOutput=tty"  >> /etc/systemd/system/[email protected]/override.conf

今この機能はbashrcscreenこの問題を解決するには、上記の標準の自動ログインを使用して次を追加します.bashrc

[ `tty` == /dev/tty1 ] && /path/program -arg1 -arg2

つまり、プログラムはでのみ実行されますが、tty1以下には完全なシェルがあります。

関連情報