「Getty」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎tty1 にブートメッセージを残す: 英語版を元に修正および飜訳)
(→‎参照: add TranslationStatus.)
 
(2人の利用者による、間の11版が非表示)
20行目: 20行目:
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
   
=== Staircase effect ===
+
=== 階段効果 ===
   
  +
''agetty'' はログインを待っている間、TTY の設定を変更し、改行が CR-LF に変換されないようにします。このため、コンソールに出力されるメッセージに「階段効果」が発生する傾向があります。
''agetty'' modifies the TTY settings while waiting for a login so that the newlines are not translated to CR-LFs. This tends to cause a "staircase effect" for messages printed to the console.
 
   
  +
これは全く無害ですが、一度ログに記録されると持続する場合、この動作を修正することができます。
It is entirely harmless, but in the event it persists once logged, you can fix this behavior with:
 
   
 
$ stty onlcr
 
$ stty onlcr
   
See this [https://bbs.archlinux.org/viewtopic.php?id=264094 forums discussion] on the subject.
+
この件に関しては、こちらの [https://bbs.archlinux.org/viewtopic.php?id=264094 forums discussion] を参照してください。
   
 
=== 仮想コンソールの追加 ===
 
=== 仮想コンソールの追加 ===
   
  +
Agetty は仮想コンソールを管理し、Arch Linux ではデフォルトで 6 つの仮想コンソールが提供されています。通常、{{ic|Ctrl+Alt+F1}} から {{ic|Ctrl+Alt+F6}} までのキーでアクセスできます。
{{ic|/etc/systemd/logind.conf}} ファイルを開いて {{ic|1=NAutoVTs=6}} オプションを使って好きな数の仮想コンソールを起動できます。
 
   
  +
{{ic|/etc/systemd/logind.conf}} ファイルを開き、オプション {{ic|1=NAutoVTs=6}} をブート時に必要な仮想端末の数に設定します。
一時的に起動したい場合、以下を入力することで適当な TTY で getty サービスが起動します:
 
   
  +
必要に応じて、{{ic|getty@tty''N''.service}} サービスを直接一時的に[[開始]]することもできます。
$ systemctl start getty@ttyN.service
 
   
 
=== 仮想コンソールに自動ログイン ===
 
=== 仮想コンソールに自動ログイン ===
43行目: 43行目:
   
 
設定は仮想コンソールとシリアルコンソールで異なります。ほとんどの場合、設定するのは仮想コンソールの自動ログインでしょう。デバイス名は {{ic|tty''N''}} で、{{ic|''N''}} が数字です。シリアルコンソールのデバイス名は {{ic|ttyS''N''}} のようになり、{{ic|''N''}} は同じく数字になります。
 
設定は仮想コンソールとシリアルコンソールで異なります。ほとんどの場合、設定するのは仮想コンソールの自動ログインでしょう。デバイス名は {{ic|tty''N''}} で、{{ic|''N''}} が数字です。シリアルコンソールのデバイス名は {{ic|ttyS''N''}} のようになり、{{ic|''N''}} は同じく数字になります。
  +
  +
{{Tip|[[greetd]] の自動ログイン機能を使うことを検討してください。最初のセッションが終了しても 2 回目の自動ログインは行わず、代わりにログイン画面を表示します。}}
   
 
==== 仮想コンソール ====
 
==== 仮想コンソール ====
   
  +
{{ic|getty@tty1.service}} のために次の内容で[[ドロップインファイル]]を作成します:
手動で以下のドロップインファイルを作成して[[systemd#ユニットファイルの編集|ユニットファイルを編集]]するか、{{ic|systemctl edit getty@tty1}} を実行して以下の内容を記述してください:
 
   
{{hc|/etc/systemd/system/getty@tty1.service.d/override.conf|2=
+
{{hc|/etc/systemd/system/getty@tty1.service.d/autologin.conf|2=
 
[Service]
 
[Service]
 
ExecStart=
 
ExecStart=
ExecStart=-/usr/bin/agetty --autologin ''username'' --noclear %I $TERM
+
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin ''username'' %I $TERM
 
}}
 
}}
   
  +
{{Tip|
{{Tip|オプション {{ic|1=Type=idle}} は全てのジョブ (ユニットの状態変更リクエスト) が完了するまでサービスの起動を遅らせます。{{ic|1=Type=simple}} を使うと、サービスはすぐに実行されますが、ブートアップメッセージがログインプロンプトに残るかもしれません。このオプションは [[ログイン時に X を起動|X を自動的に起動する]]場合に特に有用です。このオプションを使うには、{{ic|1=Type=simple}} をドロップインファイルに追加してください。init システムと ''startx'' のメッセージはどちらも[[サイレントブート|表示しない]]ようにすることができます。}}
 
  +
* デフォルトの {{ic|getty@.service}} にあるオプション {{ic|1=Type=idle}} は、すべてのジョブ(ユニットへの状態変更リクエスト)が完了するまでサービスの起動を遅らせ、ログインプロンプトがブートメッセージで汚染されないようにします。[[xinit#ログイン時に X を自動起動|X を自動的に開始する]]場合、ドロップインファイルに {{ic|1=Type=simple}} を追加して {{ic|getty@tty1.service}} を直ちに開始することが有用です。初期化システムと ''startx'' の両方を[[サイレントブート|サイレントモード]]にして、ブート中のメッセージが混在しないようにすることができます。
  +
* ログインプロンプトを完全に非表示にする仮想コンソール drop-in ファイルの例については、[[サイレントブート#agetty]] を参照してください。
  +
* 上記のスニペットは、loginctl のセッションタイプを {{ic|tty}} に設定します。必要であれば(例えば[[xinit#ログイン時に X を自動起動|X を自動的に開始する]]場合など)、このファイルに {{ic|1=Environment=XDG_SESSION_TYPE=x11}} または {{ic|1=Environment=XDG_SESSION_TYPE=wayland}} を追加して、セッションタイプを手動で {{ic|wayland}} または {{ic|x11}} に設定することが可能です。
  +
}}
  +
  +
完全な自動ログインを望まないが、ユーザー名を入力したくない場合は、[[#Prompt only the password for a default user in virtual console login|仮想コンソールログイン時にデフォルトユーザーのパスワードのみを要求する]]を参照してください。
   
''tty1'' 以外の ''tty'' を使たい [[Systemd FAQ#デフォルトで動作する getty の数を修正するにはどうすればいいですか|Systemd FAQ]] さい。
+
''tty1'' 以外の ''tty'' を使用したい場合[[systemd FAQ#デフォルトで動作する getty の数を修正するにはどうすればいいですか?|デフォルトの getty 数を変更する方法]]を参照しください。
   
 
==== シリアルコンソール ====
 
==== シリアルコンソール ====
   
以下のファイル (とディレクトリ) を作成してください:
+
[[ドロップインファイル]]を作成します。
   
 
{{hc|/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf|2=
 
{{hc|/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf|2=
70行目: 78行目:
 
==== Nspawn コンソール ====
 
==== Nspawn コンソール ====
   
[[systemd-nspawn]] コンテナに自動ログインするには、''console-getty'' サービスを上書きしてください:
+
[[systemd-nspawn]] コンテナに自動ログインするには、{{ic|console-getty.service}} を上書きするために[[ドロップインファイル]]を作成ます:
   
{{hc|/etc/systemd/system/console-getty.service.d/override.conf|2=
+
{{hc|/etc/systemd/system/console-getty.service.d/autologin.conf|2=
 
[Service]
 
[Service]
 
ExecStart=
 
ExecStart=
ExecStart=-/sbin/agetty --noclear --autologin ''username'' --keep-baud console 115200,38400,9600 $TERM
+
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --keep-baud --autologin ''username'' - 115200,38400,9600 $TERM
 
}}
 
}}
   
  +
{{ic|machinectl login ''my-container''}} メソッドを使用してコンテナにアクセスする場合は、{{ic|pts/[0-9]}} 仮想 tty を管理する {{ic|container-getty@.service}} テンプレートも調整してください:
=== Prompt only the password for a default user in virtual console login ===
 
   
  +
{{hc|/etc/systemd/system/container-getty@.service.d/autologin.conf|2=
Getty can be used to login from a virtual console with a default user, typing the password but without needing to insert the username. For instance, to prompt the password for {{ic|''username''}} on {{ic|tty1}}:
 
  +
[Service]
  +
ExecStart=
  +
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --keep-baud --autologin ''username'' - 115200,38400,9600 $TERM
  +
}}
  +
  +
=== 仮想コンソールのデフォルトユーザーのログイン時に、パスワード入力のみ表示する ===
  +
  +
Getty はデフォルトユーザーで仮想コンソールからログインする際に、パスワードを入力しますが、ユーザー名を入力する必要はありません。例えば、{{ic|tty1}} 上で {{ic|''username''}} のパスワードを要求する場合です。
   
 
{{hc|/etc/systemd/system/getty@tty1.service.d/skip-username.conf|2=
 
{{hc|/etc/systemd/system/getty@tty1.service.d/skip-username.conf|2=
87行目: 103行目:
 
ExecStart=-/sbin/agetty -o '-p -- ''username''<nowiki/>' --noclear --skip-login - $TERM
 
ExecStart=-/sbin/agetty -o '-p -- ''username''<nowiki/>' --noclear --skip-login - $TERM
 
}}
 
}}
 
and then [[enable]] {{ic|getty@tty1}}.
 
   
 
=== tty1 にブートメッセージを残す ===
 
=== tty1 にブートメッセージを残す ===
101行目: 115行目:
 
{{Note|
 
{{Note|
 
* [[カーネルパラメータ]]から {{ic|quiet}} を必ず削除してください。
 
* [[カーネルパラメータ]]から {{ic|quiet}} を必ず削除してください。
* KMS の起動が遅いと、最初の数回のブートメッセージがクリアされないかもしれません。[[KMS#Early KMS start]] か [[KMS#モードセッティングを無効にする]]を参照してください。
+
* KMS の起動が遅いと、最初の数回のブートメッセージがクリアされないかもしれません。[[カーネルモード設定#KMS の早期開始]] か [[カーネルモード設定#モード設定を無効にする]] を参照してください。
 
}}
 
}}
   
109行目: 123行目:
 
* [https://www.linusakesson.net/programming/tty/ The TTY demystified]
 
* [https://www.linusakesson.net/programming/tty/ The TTY demystified]
 
* [[Wikipedia:tty (unix)]]
 
* [[Wikipedia:tty (unix)]]
  +
  +
{{TranslationStatus|Getty|2024-08-28|806992}}

2024年8月28日 (水) 20:05時点における最新版

関連記事

getty はターミナルのラインと接続されたターミナルを管理するプログラムの総称です。getty の目的は権限のないアクセスからシステムを保護することにあります。通常、getty のプロセスは systemd によって起動され、ターミナルのラインを管理します。

インストール

Arch Linux におけるデフォルトの getty プログラムは agetty であり、util-linux パッケージの一部です。

代替手段は次の通りです。

  • mingetty — 自動ログインができる最小主義の getty。
https://aur.archlinux.org/packages/mingetty/ || mingettyAUR
  • mgetty — Unix でモデムを使うのに適した汎用プログラム。
http://mgetty.greenie.net/ || mgettyAUR

ヒントとテクニック

階段効果

agetty はログインを待っている間、TTY の設定を変更し、改行が CR-LF に変換されないようにします。このため、コンソールに出力されるメッセージに「階段効果」が発生する傾向があります。

これは全く無害ですが、一度ログに記録されると持続する場合、この動作を修正することができます。

$ stty onlcr

この件に関しては、こちらの forums discussion を参照してください。

仮想コンソールの追加

Agetty は仮想コンソールを管理し、Arch Linux ではデフォルトで 6 つの仮想コンソールが提供されています。通常、Ctrl+Alt+F1 から Ctrl+Alt+F6 までのキーでアクセスできます。

/etc/systemd/logind.conf ファイルを開き、オプション NAutoVTs=6 をブート時に必要な仮想端末の数に設定します。

必要に応じて、getty@ttyN.service サービスを直接一時的に開始することもできます。

仮想コンソールに自動ログイン

agetty に渡されるデフォルトパラメータを上書きする systemd のドロップインファイルを使って設定を行います。

設定は仮想コンソールとシリアルコンソールで異なります。ほとんどの場合、設定するのは仮想コンソールの自動ログインでしょう。デバイス名は ttyN で、N が数字です。シリアルコンソールのデバイス名は ttySN のようになり、N は同じく数字になります。

ヒント: greetd の自動ログイン機能を使うことを検討してください。最初のセッションが終了しても 2 回目の自動ログインは行わず、代わりにログイン画面を表示します。

仮想コンソール

getty@tty1.service のために次の内容でドロップインファイルを作成します:

/etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin username %I $TERM
ヒント:
  • デフォルトの getty@.service にあるオプション Type=idle は、すべてのジョブ(ユニットへの状態変更リクエスト)が完了するまでサービスの起動を遅らせ、ログインプロンプトがブートメッセージで汚染されないようにします。X を自動的に開始する場合、ドロップインファイルに Type=simple を追加して getty@tty1.service を直ちに開始することが有用です。初期化システムと startx の両方をサイレントモードにして、ブート中のメッセージが混在しないようにすることができます。
  • ログインプロンプトを完全に非表示にする仮想コンソール drop-in ファイルの例については、サイレントブート#agetty を参照してください。
  • 上記のスニペットは、loginctl のセッションタイプを tty に設定します。必要であれば(例えばX を自動的に開始する場合など)、このファイルに Environment=XDG_SESSION_TYPE=x11 または Environment=XDG_SESSION_TYPE=wayland を追加して、セッションタイプを手動で wayland または x11 に設定することが可能です。

完全な自動ログインを望まないが、ユーザー名を入力したくない場合は、仮想コンソールログイン時にデフォルトユーザーのパスワードのみを要求するを参照してください。

tty1 以外の tty を使用したい場合は、デフォルトの getty 数を変更する方法を参照してください。

シリアルコンソール

ドロップインファイルを作成します。

/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username -s %I 115200,38400,9600 vt102

Nspawn コンソール

systemd-nspawn コンテナに自動ログインするには、console-getty.service を上書きするためにドロップインファイルを作成します:

/etc/systemd/system/console-getty.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --keep-baud --autologin username - 115200,38400,9600 $TERM

machinectl login my-container メソッドを使用してコンテナにアクセスする場合は、pts/[0-9] 仮想 tty を管理する container-getty@.service テンプレートも調整してください:

/etc/systemd/system/container-getty@.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --keep-baud --autologin username - 115200,38400,9600 $TERM

仮想コンソールのデフォルトユーザーのログイン時に、パスワード入力のみ表示する

Getty はデフォルトユーザーで仮想コンソールからログインする際に、パスワードを入力しますが、ユーザー名を入力する必要はありません。例えば、tty1 上で username のパスワードを要求する場合です。

/etc/systemd/system/getty@tty1.service.d/skip-username.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- username' --noclear --skip-login - $TERM

tty1 にブートメッセージを残す

デフォルトで、Arch では getty@tty1 サービスが有効になっています。サービスファイルは既に --noclear を使うようになっているので、agetty が画面をクリアすることはありません。しかし、systemd は起動する前に画面をクリアします。この動作を無効にするには、ドロップインファイルを作成します。

/etc/systemd/system/getty@tty1.service.d/noclear.conf
[Service]
TTYVTDisallocate=no
ノート:

参照

翻訳ステータス: このページは en:Getty の翻訳バージョンです。最後の翻訳日は 2024-08-28 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。