OSを5300-06から5300-11にアップグレードした後、この奇妙な動作が発生しました。
私のシステムには別のUNIXアカウントがあり、それを "abc"と呼びましょう。すべての権限を持つrootとして機能するように、そのuidをに意図的に設定しました。これは何年もこのように実行されており、完全に問題なく動作しました。ただし、アップグレード後、abcのパスワードが期限切れになると、ログインに成功した直後に新しいパスワードを要求するのではなく、「root」のパスワードを変更するように求められ、実際にはrootのパスワードが変更されます。 ABCではありません。
abcのuidを別の一意のIDに変更すると、プロンプトが表示されたときにabcのパスワードを変更するように指示されます。
abcのuidを変更できない理由はたくさんあります。だから私が見つけようとしているのは、なぜこれが起こっているのか、そしてどうやってそれを「fix」できるのか?それは本当にOSのアップグレードが原因ですか?
2つのアカウントが同じユーザーIDを持つ場合、定義上、それらは同じアカウントです。同じユーザーIDで/etc/passwd
(または他のユーザーデータベース)に複数の行を含めることは可能ですが、お勧めできません。それらは同じユーザーであり、ログイン方法が異なります。
サポートされていない機能を使用していました。サポートされていない機能を使用するリスクは、システムがアップグレードされたときに機能しなくなることがあります。
期限切れのパスワードは、ユーザーがより弱いパスワードを選択したり、モニターに貼り付けられた付箋に書き留めたりするため、通常、セキュリティに悪影響を及ぼします。パスワードの期限切れによる唯一のセキュリティ上の利点は、破棄されたアカウントを最終的にロックアウトすることです。 abcアカウントはおそらく何らかの通常のタスクの一部として使用するものであるため、期限切れにしないでください。
この設定は壊れやすいので、おそらく変更する必要があります。何を変更するかは、abcアカウントを何に使用するかによって異なります(誰がパスワードを持っているか、どのような状況で使用されているか、abcのシェルは何か、それが複数のマシンに存在するかどうかなど)。
ほとんどの場合、システムアップデートにより、スクリプトや、パスワードの有効期限に関連するその他の機能が導入され、環境変数やその他のソースからユーザー名を収集するのではなく、UIDに基づいてユーザー名を検索します。 Gillesが指摘するように、同じUIDを持つ複数のユーザー名を持つことは脆弱です。
本当にabcを別のUIDに移動できない場合は、パッチによって変更された可能性があるパスワードの有効期限に関連するファイル/スクリプトを探してみてください。たとえば、/usr/sbin/userCommonTasks
。パッチ前のバージョンと比較できれば最高です。また、/etc/security/users
。おそらくabcのエントリをルートの上に移動すると役立つ場合があります。
1つのUIDに複数のユーザー名を持つことは一種のハックであり、結局は不安定さをトレードしているだけなので、修正はハックになるでしょう。しかし、何が変更されたかを理解できれば、システムを弱体化させることができるはずです。