suを使用してrootとしてログインしている場合は、「X」をクリックするか、「ctrl + d」を使用してシェルを閉じるのが安全ですか、それとも「exit」と入力してシェルを閉じるのがより安全ですか?違い(セキュリティ側)はありますか?それとも同じで、どのような方法を使用するかは重要ではありませんか?
答え1
Ctrl-Dexit
または同じです。
「X」を使用すると、ウィンドウマネージャは終了信号をシェルに送信します。同じ結果で終わりました。シェルが応答しない場合、通常、ユーザーは警告を受けてからシェルを強制的に終了できます(同じkill -9 $PID
)。
シェルを使用している場合は、「X」メソッドとシャットダウン方法の間に若干の違いがありますzsh
。バックグラウンドプロセスが実行されている場合、exit
/ ctrl-Dは最初に「ジョブを実行中です」という警告メッセージのみを生成します。時間、いいえ、住宅をもう一度閉じてください。 「X」ボタンを使用すると、警告なしにシェルがすぐにシャットダウンされます。
答え2
ターミナルエミュレータを閉じることは、押すのとは異なりますCTRL + D
(huponexit
対応するオプションが設定されていない場合)。
ターミナルを閉じると(「X」をクリックすると)、ターミナルエミュレータはSIGHUPをシェルに送信します。 Bash が SIGHUP を受信すると、すべてのジョブに SIGHUP も送信します。
CTRL+D
logout
またはを使用して端末を終了すると、exit
すべての操作にSIGHUPを送信せずにシェルが終了します。これはデフォルトの動作ですが、shopt
bash設定で変更できますhuponexit
。
したがって、最終的にバックグラウンドで何も実行されていないことを確認することが目標であれば、「X」をクリックする方が安全です。
。
jofelはコメントに間違った情報を提供しました(申し訳ありませんがjofel)。ターミナルエミュレータは、シェルでどのジョブが実行されているかわからないため、そのジョブを終了できません。
ノート:
この動作は完全にシェルによって異なります。異なるシェルのデフォルトの動作は異なる場合があります。
答え3
違いなし。 ^Dを押すと、「exit」と入力するのと同じことができます。
$ su -
Password:
# [press ^D]
logout