ユーザーのパスワードはに保存されますが/etc/passwd
、暗号化された方法で保存されるため、ルートでもパスワードを見ることができません。
jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash
上記のように:x:
、パスワードを表します。
パスワード/etc/passwd
をクリアテキストで保存し、ルートがそれらを見ることができるようにする方法(可能な構成)はありますか?
ユーザーのパスワードはに保存されますが/etc/passwd
、暗号化された方法で保存されるため、ルートでもパスワードを見ることができません。
jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash
上記のように:x:
、パスワードを表します。
パスワード/etc/passwd
をクリアテキストで保存し、ルートがそれらを見ることができるようにする方法(可能な構成)はありますか?
回答:
他の2つの答えは、これがバッドアイデア™であるということをあなたに教えました。しかし、彼らはあなたに難しいことを伝えており、たくさんのプログラムを変更する必要があります。
それは真実ではない。それは超簡単。変更する必要があるのは1つまたは2つの構成ファイルのみです。これを指摘することは重要だと思います。なぜなら、あなたがコントロールしていないシステムにログインするとき、あなたはそれを知っているべきだからです。これらは実際にプレーンテキストのパスワードをに入れたり、に入れ/etc/passwd
たり/etc/shadow
することはなく、別のファイルに入れられます。注:パスワードをプレーンテキストで保持したくないので、これらをテストしていません。
編集/etc/pam.d/common-password
(パスワードの変更をキャッチする)または/etc/pam.d/common-auth
(ログインをキャッチする)と追加… pam_exec expose_authtok log=/root/passwords /bin/cat
両方を編集し、でpam_unixからpam_userdbに切り替えcrypt=none
ます。あるいは、パスワードが変更されたときに記録するために、それをcommon-passwordのみに入れることもできます(pam_unixも同様に残します)。
shadow
(強力なハッシュオプションと同様に)pam_unixからオプションを削除してシャドウファイルを無効にし、従来の暗号化パスワードに戻すことができます。プレーンテキストではありませんが、John the Ripperがそれを修正します。
詳細については、PAM System Admin Guideを確認してください。
PAMのソースコードを編集したり、独自のモジュールを作成することもできます。PAM(またはモジュール)をコンパイルするだけで、それ以外は何も必要ありません。
/root/passwords
。
親愛なる、大丈夫、最初から始めましょう...
ユーザーのパスワードは/ etc / passwdに保存されますが、暗号化された方法で保存されます
いいえ、それらはに保存されていますが/etc/passwd
、それはかなり前のことです。現在、ほとんどの場合、パスワードはいわゆるシャドウファイルに保存されてい/etc/shadow
ます。
しかし、暗号化された方法で、ルートでさえそれらを見ることができません:
私はそれが時々交換可能に使用されることを知っていますが、ハッシュは暗号化ではありません。暗号化はまさにその定義により可逆です。つまり、暗号化されたものをクリアテキスト形式に変換することができます。ハッシュは、いかなる方法でも可逆的ではないように設計されています(ブルートフォースを除く)。ハッシュされたものの元のクリアテキスト形式は、回復可能であるとは想定されていません。
シャドウファイルのパスワードはハッシュとして保存されます。
上記のように:x:パスワードを表します
x
このケースでは、従来のパスワードフィールドのプレースホルダです。これx
は、パスワードがシャドウファイルで見つかることを意味します。
/ etc / passwdにパスワードをクリアテキストで保存し、ルートがそれらを見ることができるようにする方法(可能な構成)はありますか?
はい、これは確かに可能ですが、いくつかの理由で良い考えではありません。Derobertの答えは、それを行う簡単な方法を説明しています。
しかし、なぜそれは良い考えではないのですか?さて、シンプルだが非常に重要な理由のために:セキュリティ。これらの質問を読むことをお勧めします。
しかし、要約すると、次のことを前提としています。会社にサーバーがあり、すべてのユーザーアカウントがパスワードで保護されており、これらのユーザーアカウントのデータが同じパスワードで暗号化されています。外部からのクラッカーはサーバーにアクセスできますが、重要なデータはユーザーアカウントで暗号化されているためアクセスできません。
ここで、パスワードがプレーンテキストで保存されると仮定します。パスワードが読み取れるため、クラッカーは突然すべてにアクセスできます。しかし、ハッシュ値として保存されている場合、ブルートフォース攻撃を行うためのリソースを大量に持っている人を除き、ほとんど役に立たないでしょう。
"$id$"
で終了した文字列が続く"$"
。 $id$salt$encrypted
その後、代わりにDES機を用いての、id
識別暗号化、次に使用される方法と、この文字列の残りの解釈方法を決定します»
まず、暗号化されたパスワードは入っていませんが/etc/passwd
、入っています/etc/shadow
。この理由の1つは、/etc/passwd
一般に読み取り可能であるためです(たとえば、別のユーザーのGECOSフィールド情報を見つけることができます)。特に、古い暗号化スキームでは、暗号化されたパスワードに対するブルートフォース攻撃が可能です。
パスワードをプレーンテキストで保存するだけでは必要ありません/etc/shadow
。有効なパスワードを確認するために情報を読み取るパスワードプログラムとライブラリの更新が必要になります。そして、すべてのユーティリティが、プレーンテキストのパスワードストレージを理解しないものに対して静的にリンクされるのではなく、共有ライブラリを使用してその情報にアクセスすることを期待する必要があります。
これがセットアップの構成のオプションである場合、不適切にスイッチをオンにする愚かな人々が常に存在します。そして、彼らはまだCRT画面で作業しており、情報を見ている間、建物の外から簡単に取り出せるようにこれを放送しています。
それとは別に、人々は複数のシステムで同じまたは類似のパスワードを使用する傾向があるため、パスワードを人間が読めるようにすることはお勧めできません。一部のシステム管理者は他のシステムでシステム管理者を再試行できるため、ユーザーがアカウントを持っていることを知っています。
もっと面白いことがあるに違いありません。その動作はシステムで調査できます。
/etc/shadow
暗号化されたパスワードは保存せず、パスワードハッシュを保存します。はい、関数が呼び出されcrypt
、manページには「暗号化されています」と表示されますが、魚を自転車と呼ぶと、車輪は与えられません。/etc/shadow
プログラムを再コンパイルせずに、異なる形式でストアパスワードを作成することができることに注意してください(少なくともLinuxおよびSolarisで):認証方法は常に動的にリンクされます。パスワードをプレーンテキストとして保存するのはひどい考えですが、ちょっとした作業で可能です。
基本的な理由(これが悪い考えである理由)は、他のユーザー(root、adminまたはその他)が他のユーザーのパスワードにアクセスしてはならないことです。
単にパスワードが認証の手段だからです。他のユーザーのパスワードを知っている場合、その資格情報(ユーザー名+パスワード)を知っているので、そのユーザーとしてログインできます。(または彼女またはそれ)になりすます。
そのユーザーとしてログインしたときに私が行うアクションは、他のユーザーが責任を負います。そして、それは認証の仕組みではありません。
大量の重要なファイルを削除する、ハードディスクを消去する、バックアップを消去する、原子力発電計画をシャットダウンするなど、アクションは悲惨なものになる可能性があります。
または単に違法。私(管理者)がすべてのパスワードにアクセスできる銀行機関を想像してください。レジ係のパスワードを使用して、大統領の銀行口座からウィンドウクリーナーの銀行口座への100万ドルの移動を注文できます。次に、レジの優れたパスワードを使用してトランザクションを承認します。次に、ウィンドウクリーナーの口座から自分のオフショア銀行口座への小切手を承認します。
それから私はバハマで長期休暇に行きます...
そのビューでは、パスワードのハッシュと個別のシャドウファイルの使用は、このルールを実施する手段と見なすことができます(ユーザーが別のユーザーになりすますことはできません)。
また、@ Miralがコメントしたように*、su
偽装を許可している間(および上記の引数からのスローの種類)、その使用のログも保持している例外があります(したがって、「ログが保持されます」)。
*銀行の例はおそらく最良ではなかった。セキュリティが重要な環境では、通常、1つのパスワードよりも多くの認証および許可の手段が必要です。
su otheruser
。
su
はログに記録されますが、suはユーザーが別のユーザーになりすましている間に実際に行われたことの記録を保持しません。また、悪意のあるルートは常にログを変更して、将来の調査員からアクションを隠すことができます。