パスワードとアカウント管理
アカウントの安全はパスワードの管理から始まります。passwd で自分や他ユーザのパスワードを変更し、推測されにくい長く複雑な文字列を設定します。さらに chage を使うと、パスワードの有効期限や次回変更を強制する設定ができ、古いパスワードが使われ続けるのを防げます。使われていないアカウントはロックまたは削除し、不要な入口を残さないことが大切です。
システムの安全は、結局のところ「正規の利用者だけが入れる」状態を保てるかどうかにかかっています。その入口を守る最初の鍵がアカウントとパスワードの管理です。どれだけファイアウォールや SELinux を固めても、推測しやすいパスワードや、退職者の残ったアカウントがひとつあれば、そこから入られてしまいます。Linux のユーザ情報は /etc/passwd に、パスワードのハッシュ(暗号化された形)は一般ユーザから読めない /etc/shadow に保存されます。パスワードそのものが平文で保存されることはありませんが、弱いパスワードは総当たりや辞書攻撃で破られ得ます。だからこそ、強いパスワードを設定し、定期的に見直し、使われなくなったアカウントを残さない、という地道な管理が、最小権限の原則(必要な人だけが入れる)を入口で支えることになります。
パスワードを変更する passwd
パスワードの変更には `passwd` コマンドを使います。引数なしで `passwd` を実行すると自分のパスワードを変更でき、現在のパスワードを確認したうえで新しいものを2回入力します。管理者は `sudo passwd user01` のようにユーザ名を指定して、他ユーザのパスワードを設定・変更できます(この場合は現在のパスワードを問われません)。強いパスワードの基本は、十分に長いこと、英大小文字・数字・記号を混ぜること、辞書に載る単語や誕生日・名前のような推測されやすい要素を避けることです。RHEL/MiracleLinux系では pwquality という仕組みで品質チェックがかかり、短すぎたり単純すぎたりするパスワードは警告・拒否されます。なお passwd には `passwd -l user01`(ロック)や `passwd -S user01`(状態表示)といったオプションもあり、アカウントの一時的な無効化や状態確認に使えます。
有効期限を管理する chage
同じパスワードを何年も使い続けると、万一どこかで漏れていた場合に、長期間にわたって悪用される危険があります。これを防ぐのが `chage`(change age)コマンドで、パスワードの有効期限や変更ルールを設定できます。現在の設定は `chage -l user01` で一覧でき、最終変更日・次回変更可能日・有効期限・期限切れ後の猶予などが表示されます。たとえば `sudo chage -M 90 user01` とすると、そのユーザのパスワードは90日で期限切れとなり、変更を促されます。`chage -m 7 user01` は変更後7日間は再変更できないように、`chage -W 14 user01` は期限の14日前から警告を出すように設定します。新規ユーザに初期パスワードを渡したあと、初回ログイン時に必ず本人に変更させたい場合は `sudo chage -d 0 user01` とすると、次回ログイン時にパスワード変更が強制されます。これらは、古いパスワードが惰性で使われ続けるのを防ぐ実務的な定番設定です。
ユーザの作成・無効化・削除
アカウント自体の管理も押さえておきましょう。新規ユーザは `useradd user01` で作成し、`passwd user01` で初期パスワードを設定します(RHEL/MiracleLinux系では useradd 時にホームディレクトリが作られます)。所属グループの変更は `usermod -aG wheel user01` のように usermod で行い、前述のとおり管理権限を与えるなら wheel グループへの追加が定番です。退職者など使われなくなったアカウントは、放置せず速やかに対処します。すぐ消すのが不安なら、まず `usermod -L user01`(または `passwd -l`)でロックしてログインを止め、しばらく様子を見てから `userdel user01` で削除します。ホームディレクトリごと消すなら `userdel -r user01` です。使わないアカウントを残さないことは、攻撃者にとっての「狙える入口」を減らす、最小権限の実践そのものです。
よくある失敗とセキュリティ上の注意
アカウント管理での失敗は、しばしば運用の隙となって表れます。よくあるのが、共有アカウントの使い回しです。複数人で同じアカウントとパスワードを使うと、誰が操作したか追えなくなり、ひとり退職しても全員のパスワード変更が必要になります。人ごとにアカウントを分け、管理操作は sudo で行うのが正道です。また、初期パスワードを安易なものにして変更を強制し忘れる、退職者のアカウントを消し忘れる、root に直接パスワードログインを許したまま放置する、といった点も典型的な穴です。パスワードの定期変更は有効な一方、頻繁すぎると安易な使い回し(末尾の数字だけ変える等)を招くという指摘もあり、近年は「長く強いパスワード+漏えい時の即時変更」を重視する考え方も広がっています。いずれにせよ、弱いパスワードと管理されないアカウントを放置しない、という原則は変わりません。
実務の使いどころ
実務では、アカウント管理を「入れるとき」と「外すとき」の両方で抜けなく回すことが肝心です。新規メンバーが来たら、専用アカウントを作り、強い初期パスワードを設定し、`chage -d 0` で初回変更を強制し、必要な権限だけを sudo で付与する。メンバーが抜けたら、忘れずにアカウントをロックし、一定期間後に削除する。定期的に `chage -l` や /etc/passwd を見直して、期限切れ間近のパスワードや、心当たりのないアカウントがないかを点検する。こうした入退場の管理を、SSH の鍵管理やファイアウォールと同じ熱量で運用することが、システムを長く安全に保つ土台になります。入口の管理を疎かにすると、奥でどれだけ守りを固めても意味が薄れてしまうのです。