Linux ディストリビューションは一般に shadow utilities スイートのアカウントツールを提供しますが、既定値や上位レベルのラッパーは異なります。ローカルアカウントを変更する前に、中央管理のアカウントでないことを確認し、ローカルのコマンドマニュアルを読み、復旧経路を確保してください。
ユーザー管理 · レッスン 6
ユーザー管理ツール
明示的なオプションを使ってローカルアカウントを作成、変更、保護、検証、削除する方法を学びます。
このレッスンのコマンドは認証と所有権の状態を変更します。本番ホストではなく、許可された破棄可能な環境だけで練習してください。
アカウント作成の既定値を確認する
useradd は、コマンドオプションとサイトの既定値を使ってローカルアカウントを作成します。コンパイル時および設定済みの既定値は次のように確認します。
$ useradd -D
/etc/default/useradd、/etc/login.defs、スケルトンディレクトリの内容などが動作へ影響しますが、その役割はディストリビューションによって異なります。上位レベルの adduser コマンドが存在する場合もありますが、そのインターフェースはすべての Linux システムで標準化されていません。
ローカルアカウントを明示的に作成する
管理された環境では、未知の既定値に依存せず、重要な属性を指定します。
$ sudo useradd -m -s /bin/bash -c "Bob Example" bob
-mはホームディレクトリの作成を要求します。-s /bin/bashは、そのパスが許可されインストール済みだと確認したうえで、ログインシェルを選びます。-cは GECOS/コメントフィールドを指定します。
通常、新しいアカウントは利用可能なローカルパスワードを設定するまで認証できませんが、初期パスワードとロック状態の正確な動作はローカルツールとポリシーによります。仮定せず、レコードを検証してください。
$ getent passwd bob
$ sudo passwd -S bob
$ id bob
新しいアカウントのホームディレクトリ作成を明示的に要求する useradd オプションはどれですか?
パスワードを設定・変更する
通常ユーザーは、次の対話的コマンドで自身のローカルパスワードを変更します。
$ passwd
認可された管理者は、別のローカルアカウントのパスワードを設定できます。
$ sudo passwd bob
パスワードは保護されたプロンプトだけで入力し、コマンド引数、シェル履歴、レッスンのメモ、チャットへ書いてはいけません。PAM ポリシーにより、弱いパスワードや再利用されたパスワードが拒否される場合があります。ディレクトリ管理されたアカウントには別のツールが必要なこともあります。
現在のユーザーが通常、対話的プロンプトを通じて自身のパスワードを変更するコマンドはどれですか?
アカウント属性とグループを変更する
usermod はローカルアカウントのフィールドを変更します。例は次のとおりです。
$ sudo usermod -s /bin/zsh bob
$ sudo usermod -d /srv/home/bob -m bob
$ sudo usermod -aG developers bob
ホームを移動する前に、移動先、所有権、空き容量、稼働中プロセス、マウント、サービスを確認します。補助グループでは、-aG は現在の一覧への追加を意味します。-a なしで -G を使うと補助グループ一覧全体を置き換え、予期せずアクセスを失う可能性があります。
グループ変更は通常、古い資格情報で実行中のプロセスではなく、新しいログインセッションへ反映されます。
bob の他の補助グループ所属を置き換えず、補助グループ developers へ追加するコマンドはどれですか?
ローカルパスワードをロックする
管理者は passwd -l USER でローカルパスワードハッシュをロックし、passwd -S USER で状態を確認できます。ロックを解除する passwd -u USER は、ロック理由と有効なハッシュが残っているかを確認してから使います。
パスワードロックで、SSH 鍵、トークン、スケジュール済みジョブ、実行中プロセス、サービス固有の認証が必ず停止するわけではありません。アカウントを包括的に無効化するには、脅威とアクセス経路を定義し、アカウント失効、ログインシェル、サービスアクセス、鍵、セッション終了などを組み合わせたポリシーを適用します。
passwd -l bob が主にロックするものは何ですか?
ローカルアカウントを意図的に削除する
単なる userdel bob はローカルアカウントレコードを削除しますが、通常はホームディレクトリを残します。userdel -r bob はホームディレクトリとメールスプールの削除も試みるため、破壊的な操作です。
削除前に必ず次を行います。
getent passwd bobとid bobで正確なアカウントを確認する。- 稼働中プロセス、スケジュール済みタスク、サービス、鍵、委任済みアクセスを特定する。
- 対象ファイルシステム全体で、その UID が所有するファイルを棚卸しする。
- データを移管、アーカイブ、保持、安全に削除するか決める。
- 孤立ファイルが残る間は UID を再割り当てしないことを確認する。
userdel -r は、設定されたホームとメールの場所の外にあるファイルまで削除するとは保証しません。アカウント削除後も、ファイルの数値所有権、データベース権限、アプリケーション識別情報、リモートディレクトリのレコードが残る場合があります。
一般的な userdel -r bob は、単なる userdel bob に加えて何の削除を要求しますか?
隔離された環境でアカウントのライフサイクルを練習するには、次のハンズオンラボを利用できます。
- useradd、usermod、userdel で Linux ユーザーアカウントを管理する - 新規アカウントの作成と保護から変更、削除まで、ユーザー管理のライフサイクル全体を練習します。
- groupadd、usermod、groupdel で Linux グループを管理する - グループの追加、変更、削除を含む、主要なコマンドラインユーティリティーを実践します。
- Linux でユーザーアカウントと sudo 権限を設定する - Linux システムのセキュリティを高める、ユーザーアカウントと sudo 権限の重要な管理方法を学びます。
レッスン完了
ユーザー管理ツール を完了しました
明示的な範囲と検証を伴って、ローカルアカウントを管理できるようになりました。
作成前に
useraddの既定値を確認する。ホーム、シェル、メタデータの設定を明示的に要求する。
保護されたプロンプトだけでパスワードを変更する。
既存の一覧を置き換えずに補助グループを追加する。
破壊的な削除前に識別情報への依存関係を棚卸しする。