私の目標は、systemdを使用して「閉鎖/ブラックボックス」Linuxを構成することですが、どのような対話型ログインもまったく不可能です。
インタラクティブなログインをオフにするためにいくつかの設定オプションをオフにすることについて話すものではありません。システムにログインを許可するソフトウェアがないため、どのような状況でもシステムがログインできないようにする方法があるかどうか疑問に思います。
それは可能ですか?
答え1
StackExchangeの質問で、詳細はほとんどありません。いいえ。構成段階では、これを行うことは不可能である可能性が高いです。
少数の主要リンクを削除できますが、完全に削除することはできません。
通常、シェルスクリプトを実行するにはインタラクティブシェルインタプリタが必要なため、すべてのインタラクティブシェルインタプリタを削除するわけではありません。 systemdプロジェクトの目的は、起動せずに起動することであり、多くのシステムソフトウェアがこれを実行できるようにしますが、それでも起動できるとは言い難いです。いいえシェルスクリプトを実行したいです。たとえば、rpm
シェルdpkg
を使用してパッケージインストールタスクを実行します。
login
(およびsulogin
)は、名前付きの単一パッケージの一部ですutil-linux
。通常、このパッケージは削除されません。たとえば、PID 1の依存関係であるutil-linux
プロバイダパッケージもあります。したがって、インストールされているパッケージの一部を破棄(削除)する必要があります。これはしばしば避けることができます。たとえば、パッケージをアップグレードすると破損が修正され、パッケージのチェックサムを確認したい場合は警告として表示されます。mount
systemd
systemd/system/debug-shell.service
これらの定義に従って削除する必要があります。このファイルは変更または削除する構成ファイルではなく、systemd
パッケージの一部です。
実行されないログインを許可するソフトウェアは、これを達成する標準的な方法です。かなりきれいで効果的です。別の標準技術は、ロック解除パスワードおよび/または有効なログインシェルを使用してユーザーを作成しないことです。妄想的な感じがしたら後者を選ぶでしょう。 (純度と「攻撃面」の減少と冗長性のために、電子は自然に従います)。
答え2
gettyサービスを無効にできます[email protected]
。ログインを提供できる他のサービスを無効にsshd
できます。
ログインを許可するサービスがあっても有効なパスワードがないように、/etc/shadow
各ユーザーのパスワードフィールドを設定できます。*