web-dev-qa-db-ja.com

Debian 9.2.1コマンドラインに自動的にログイン

古いラップトップに安価なサーバーとしてDebian 9.2.1をインストールしました。コンピューターに自分以外は物理的にアクセスしていないので、起動時に自動的にログインして、SSHではなくラップトップ自体を使用する必要がある場合に、ログインする手間を省くことができます。グラフィカル環境はありません。インストールされているため、これらの方法はどれも機能せず、 https://superuser.com/questions/969923/automatic-root-login-in-debian-8-0-consoleなどの複数のソリューションを試しました-only ただし、ログインプロンプトがまったく表示されないという結果になりました...それで、Debianを再インストールしました。グラフィカル環境なしで自動的にログインするにはどうすればよいですか?ありがとう!

7
Josh

/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 docs:getty

18
GAD3R

受け入れられた回答は仮想端末に関係することをこの議論に追加したいだけです。私の場合、シリアル端末に使用される個別のサービスファイルを編集する必要がありました。ファイルは/lib/systemd/system/[email protected]にあり、適切な行に--autologin <user>を追加する同じ手順でうまくいきます。

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

特に彼のシステムを@Keelanから切り離すことについてのコメントを踏まえて、もう少し詳細な回答を追加したいと思います。

まず、プログラムを実行しているTTYを1つだけにし、他の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

これがbashrcなしで実行されることを覚えておいてください。これは、screenのようなものを使用する場合、通常のエイリアスなどをすべて取得できないことを意味します。これを修正するには、上記の標準の自動ログインを使用しますが、これを.bashrcに追加します。

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

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

2
Fmstrat