Red Hat Enterprise Linux でのユーザーとグループの管理

Red Hat Enterprise LinuxBeginner
オンラインで実践に進む

はじめに

この実験(Lab)では、Red Hat Enterprise Linux (RHEL) 環境内でのローカルユーザーとグループの管理に関する重要なスキルを習得します。まず、ユーザーとグループの基本的な概念を理解することから始めます。これには、ユーザーとグループの情報、ファイル所有権の特定方法などが含まれます。

次に、スーパーユーザーアクセス権の取得、ローカルユーザーアカウントの作成と変更、ローカルグループアカウントの管理、およびユーザーパスワードポリシーの設定方法を学びます。この実践的な経験を通して、Linux システムへのアクセスと権限を効果的に制御するための知識を身につけることができます。

ユーザーとグループの概念を理解する

このステップでは、Red Hat Enterprise Linux (RHEL) における基本的なユーザーとグループの概念と、さまざまなコマンドを使用してユーザーとグループの情報を検査する方法について学びます。これらの概念を理解することは、Linux システムでの権限とアクセス制御を管理する上で不可欠です。

Linux システム上のすべてのファイルとプロセスは、ユーザーとグループに関連付けられています。この関連付けによって、誰がファイルを読み書き実行できるか、誰がプロセスを管理できるかが決定されます。

まず、id コマンドを使用して、現在のユーザーとシステム上の他のユーザーを識別する方法を見てみましょう。

  • id コマンドを使用して、現在ログインしているユーザーに関する情報を表示します。このコマンドは、ユーザーID (UID)、プライマリグループ ID (GID)、およびユーザーが所属するすべてのグループを表示します。

    id

    labex ユーザーの情報を示す、次のような出力が表示されるはずです。

    uid=1000(labex) gid=1000(labex) groups=1000(labex),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  • root ユーザーなど、別のユーザーに関する基本情報を表示するには、id コマンドに引数としてユーザー名を渡します。

    id root

    出力には、root ユーザーの UID (0)、GID (0)、およびグループが表示されます。

    uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

次に、ls コマンドを使用して、ファイルとディレクトリの所有者を識別する方法を学びます。

  • ls -l コマンドを使用して、ファイルの所有者を表示します。まず、~/project ディレクトリにダミーファイルを作成します。

    touch ~/project/mytextfile.txt
    ls -l ~/project/mytextfile.txt

    出力には、mytextfile.txt のユーザーとグループの所有者として labex が表示されます。

    -rw-r--r-- 1 labex labex 0 Feb  5 11:10 /home/labex/project/mytextfile.txt
  • ls -ld コマンドを使用して、そのディレクトリの内容ではなく、ディレクトリの所有者を表示します。次の出力では、3 番目の列にユーザー名が、4 番目の列にグループ名が表示されます。

    ls -ld ~/project

    ~/project ディレクトリの所有者として labex が表示されます。

    drwxr-xr-x 2 labex labex 6 Feb  5 11:10 /home/labex/project

次に、ps コマンドを使用して、プロセス情報と各プロセスに関連付けられたユーザーを表示する方法を調べましょう。

  • ps -au コマンドを使用して、プロセスを表示します。a オプションは、ターミナルを持つすべてのプロセスを表示し、u オプションは、プロセスに関連付けられているユーザーを表示します。次の出力では、最初の列にユーザー名が表示されます。

    ps -au

    labexroot が一般的なユーザーとして表示される、さまざまなプロセスが表示されます。

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0  10608  3808 ?        Ss   00:00   0:00 /sbin/init
    root        42  0.0  0.0  10608  3808 ?        Ss   00:00   0:00 /sbin/init
    labex      123  0.0  0.1 224152  5756 pts/0    Ss   00:00   0:00 -bash
    labex      150  0.0  0.0 225556  3652 pts/0    R+   00:00   0:00 ps -au

最後に、ユーザー情報とグループ情報をそれぞれ格納する /etc/passwd ファイルと /etc/group ファイルを調べます。これらのファイルは、Linux システムでユーザーアカウントとグループアカウントがどのように定義されているかを理解するために重要です。

  • /etc/passwd ファイルの各行には、1 人のユーザーに関する情報が含まれています。ファイルは、コロンで区切られた 7 つのフィールドに分割されています。cat を使用してその内容を表示します。

    cat /etc/passwd

    labexroot のエントリを見つけます。labex の場合、次のようになります。

    labex:x:1000:1000:LabEx User:/home/labex:/bin/bash

    各フィールドを分解してみましょう。

    • labex: このユーザーのユーザー名。
    • x: ユーザーの暗号化されたパスワードは、歴史的にここに保存されていました。これは現在、パスワードがセキュリティのために /etc/shadow に保存されているため、プレースホルダーです。
    • 1000: このユーザーアカウントの UID 番号。
    • 1000: このユーザーアカウントのプライマリグループの GID 番号。
    • LabEx User: このユーザーの簡単なコメント、説明、または本名。
    • /home/labex: ユーザーのホームディレクトリ、およびログインシェルが開始するときの初期作業ディレクトリ。
    • /bin/bash: ログイン時に実行される、このユーザーのデフォルトシェルプログラム。
  • /etc/group ファイルの各行には、1 つのグループに関する情報が含まれています。各グループエントリは、コロンで区切られた 4 つのフィールドに分割されています。cat を使用してその内容を表示します。

    cat /etc/group

    さまざまなシステムグループとユーザープライベートグループのエントリが表示されます。たとえば、labex グループエントリは次のようになります。

    labex:x:1000:

    各フィールドを分解してみましょう。

    • labex: このグループの名前。
    • x: 廃止されたグループパスワードフィールド。これは現在、プレースホルダーです。
    • 1000: このグループの GID 番号。
    • (空): このグループのセカンダリメンバーとして、追加のユーザーが明示的にリストされているかどうかを示すユーザーのリスト。このフィールドが空の場合、追加のユーザーは、このグループのセカンダリメンバーとして明示的にリストされていません(ただし、プライマリユーザー labex は暗黙的にメンバーです)。

    プライマリグループとセカンダリグループ:
    すべてのユーザーは、正確に 1 つのプライマリグループを持っています。ローカルユーザーの場合、このグループは /etc/passwd ファイルに GID でリストされています。プライマリグループは、ユーザーが作成したファイルを所有します。通常のユーザーを作成する場合、ユーザーのプライマリグループとなる、ユーザーと同じ名前のグループが作成されることがよくあります。ユーザーは通常、この User Private Group の唯一のメンバーです。この設計により、ファイル権限の管理が簡素化されます。

    ユーザーは、セカンダリグループも持つ場合があります。セカンダリグループのメンバーシップは、/etc/group ファイルに保存されます。ユーザーは、グループがプライマリかセカンダリかに関係なく、いずれかのグループがアクセス権を持っているかどうかに基づいて、ファイルへのアクセス権を付与されます。たとえば、labex ユーザーが labex プライマリグループと wheel をセカンダリグループとして持っている場合、そのユーザーは、これらの 2 つのグループのいずれかが読み取ることができるファイルを読み取ることができます。

    id コマンドは、ユーザーのすべてのグループメンバーシップを表示できます。labexid の出力を思い出してください。

    uid=1000(labex) gid=1000(labex) groups=1000(labex),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    ここで、gid=1000(labex) は、labex がプライマリグループであることを示しています。groups=1000(labex),10(wheel) は、すべてのグループメンバーシップをリストし、labex をプライマリグループとして、wheel をセカンダリグループとして表示します。

スーパーユーザーアクセス権の取得

このステップでは、RHEL システムでスーパーユーザーアクセス権(root 権限)を取得する方法を学びます。スーパーユーザーアクセス権は、ソフトウェアのインストール、ユーザーの管理、システム設定の構成など、管理タスクを実行するために不可欠です。権限昇格の主要なツールである su コマンドと sudo コマンドについて説明します。

su (substitute user) コマンドを使用すると、別のユーザーアカウントに切り替えることができます。ユーザー名を指定せずに使用すると、デフォルトで root ユーザーになります。

  • su - コマンドを使用して、root ユーザーに切り替えます。ハイフン (-) オプションを使用すると、ログインシェルが確実に取得されます。つまり、root ユーザーの環境変数とパスがロードされます。root パスワード(redhat)の入力を求められます。

    su -

    パスワード redhat を入力すると、プロンプトが [root@host ~]# に変わり、これで root ユーザーになったことを示します。

    Password:
    [root@host ~]#

    root であることを確認するには、whoami コマンドを実行します。

    whoami

    出力は次のようになります。

    root

    root シェルを終了して、labex ユーザーに戻るには、exit と入力します。

    exit

    プロンプトが [labex@host ~]$ に戻ります。

sudo (superuser do) コマンドを使用すると、許可されたユーザーが、sudoers ファイルで指定されたとおりに、スーパーユーザーまたは別のユーザーとしてコマンドを実行できます。labex ユーザーは、パスワードを必要とせずに sudo 権限を持つように構成されています。これは、多くのクラウド環境と実験(Lab)環境で一般的です。

  • sudo -i コマンドを使用して、root アカウントに切り替えます。このコマンドは、権限を昇格してコマンドを実行するためのより安全な方法を提供するので、一般的に su - よりも推奨されます。sudo -i を使用すると、自分自身のユーザーアカウントを引き続き使用しますが、root 権限が与えられ、コマンドは自分のアカウントに記録されるため、何が行われたかを追跡しやすくなります。

    sudo -i

    プロンプトが [root@host ~]# に変わり、これで root ユーザーになったことを示します。

    [root@host ~]#

    ここでも、whoami で確認できます。

    whoami

    出力は次のようになります。

    root

    root シェルを終了して、labex ユーザーに戻るには、exit と入力します。

    exit

    プロンプトが [labex@host ~]$ に戻ります。

  • また、sudo を使用して、root シェルに切り替えることなく、root 権限で単一のコマンドを実行することもできます。たとえば、/etc/shadow の内容(root だけが読み取ることができます)を表示するには、sudo cat /etc/shadow を使用できます。

    sudo cat /etc/shadow | head -n 3

    これにより、/etc/shadow ファイルの最初の 3 行が表示され、cat コマンドが root 権限で実行されたことが示されます。

    root:*:19780:0:99999:7:::
    bin:*:19780:0:99999:7:::
    daemon:*:19780:0:99999:7:::

    /etc/sudoers ファイルは、sudo コマンドのメイン設定ファイルです。どのユーザーまたはグループが、どのコマンドを昇格された権限で実行できるかを定義します。複数の管理者が同時にファイルを編集しようとすると問題が発生するのを避けるために、特別な visudo コマンドでのみ編集する必要があります。visudo エディターは、構文エラーがないことを確認するために、ファイルも検証します。

    /etc/sudoers の一般的なエントリは、wheel グループのメンバーが、任意のコマンドを root として実行できるようにします。labex ユーザーは wheel グループのメンバーであるため、パスワードなしで sudo が機能します。

    sudo grep wheel /etc/sudoers

    次のような行が表示され、wheel グループに sudo アクセス権が付与されます。

    %wheel        ALL=(ALL:ALL)       ALL

    この行の意味は次のとおりです。

    • %wheel: ルールは、wheel グループのメンバーに適用されます。% 記号はグループを示します。
    • ALL=(ALL:ALL): 任意のホスト(最初の ALL)で、wheel グループのユーザーは、任意のユーザー(2 番目の ALL)および任意のグループ(3 番目の ALL)としてコマンドを実行できます。
    • ALL: wheel グループのユーザーは、任意のコマンドを実行できます。

これで、スーパーユーザーアクセス権の取得に関する説明は終わりです。これで、su -sudo -i の違いと、権限を昇格してコマンドを実行する方法を理解できました。

ローカルユーザーアカウントの作成と変更

このステップでは、RHEL システムでローカルユーザーアカウントを作成、変更、削除する方法を学びます。ユーザーアカウントの管理は基本的な管理タスクであり、各ユーザーが適切なアクセス権と権限を持っていることを確認します。useraddusermoduserdel、および passwd などのコマンドを使用します。

まず、新しいユーザーアカウントを作成しましょう。

  • useradd コマンドを使用して、新しいユーザーを作成します。デフォルトでは、useradd は、1000 以上の UID を持つ新しいユーザーを作成し、ホームディレクトリ(/home/username)を作成し、デフォルトシェルを /bin/bash に設定します。このコマンドを実行するには、sudo 権限が必要です。testuser01 という名前のユーザーを作成しましょう。

    sudo useradd testuser01

    ユーザーを作成した後、/etc/passwd でその存在を確認し、ホームディレクトリを確認できます。

    grep testuser01 /etc/passwd
    ls -ld /home/testuser01

    次のような出力が表示されるはずです。

    testuser01:x:1001:1001::/home/testuser01:/bin/bash
    drwx------. 2 testuser01 testuser01 6 Mar  4 15:22 /home/testuser01
  • デフォルトでは、新しく作成されたユーザーにはパスワードが設定されていません。つまり、ログインできません。passwd コマンドを使用して、testuser01 のパスワードを設定する必要があります。

    sudo passwd testuser01

    新しいパスワードの入力を求められます。この実験(Lab)では、testuser01 のパスワードとして labexrhel9 を使用します。「BAD PASSWORD」警告が表示される場合がありますが、続行できます。

    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.

    次に、su - を使用して testuser01 に切り替えてみてください。

    su - testuser01

    パスワードの入力を求められたら、パスワード labexrhel9 を入力します。プロンプトが [testuser01@host ~]$ に変わるはずです。

    Password:
    [testuser01@host ~]$

    labex ユーザーに戻るには、exit と入力します。

    exit

次に、usermod コマンドを使用して、既存のユーザーアカウントを変更しましょう。usermod コマンドを使用すると、ホームディレクトリ、シェル、またはグループメンバーシップなど、ユーザーのさまざまなプロパティを変更できます。

  • testuser01 のコメントフィールド(フルネーム)を「Test User One」に変更しましょう。

    sudo usermod -c "Test User One" testuser01

    /etc/passwd ファイルをもう一度確認して、変更を確認します。

    grep testuser01 /etc/passwd

    出力には、更新されたコメントが反映されるはずです。

    testuser01:x:1001:1001:Test User One:/home/testuser01:/bin/bash
  • また、ユーザーアカウントをロックまたはロック解除することもできます。アカウントをロックすると、ユーザーはログインできなくなり、ロックを解除すると、ログインが再び有効になります。

    testuser01 アカウントをロックするには、次のようにします。

    sudo usermod -L testuser01

    次に、testuser01 にもう一度切り替えてみてください。

    su - testuser01

    パスワードの入力を求められますが、正しいパスワードを入力しても、ログインは失敗します。

    Password:
    su: Authentication failure

    testuser01 アカウントのロックを解除するには、次のようにします。

    sudo usermod -U testuser01

    testuser01 にもう一度切り替えてみてください。成功するはずです。labex に戻るには、exit を忘れずに入力してください。

    su - testuser01
    ## Enter password 'labexrhel9'
    exit

最後に、作成したユーザーアカウントを削除しましょう。

  • userdel コマンドを使用して、ユーザーを削除します。デフォルトでは、userdel/etc/passwd からユーザーのエントリを削除しますが、ホームディレクトリはそのまま残します。これにより、孤立したファイルが発生する可能性があります。

    sudo userdel testuser01

    ユーザーが /etc/passwd から削除されていることを確認しますが、ホームディレクトリはまだ存在します。

    grep testuser01 /etc/passwd
    ls -ld /home/testuser01

    grep コマンドは出力を返さないはずであり、ユーザーが削除されたことを示します。ls -ld コマンドは、ホームディレクトリがまだ存在することを示しますが、その所有権は、ユーザーがもはや存在しないため、数値 UID/GID として表示されます。

    drwx------ 2 1001 1001 83 Mar  4 15:22 /home/testuser01

    注:一部の RHEL バージョンまたは構成では、userdel は、ホームディレクトリが空の場合、またはユーザーが唯一の所有者であった場合、デフォルトでホームディレクトリを削除する場合があります。ただし、ホームディレクトリが削除されることを確認するには、-r オプションを明示的に使用する方が安全です。

  • ユーザーとそのホームディレクトリを削除するには、userdel-r オプションを使用します。これを適切に実証するために、新しいユーザー testuser02 を作成しましょう。

    sudo useradd testuser02
    sudo passwd testuser02 ## You'll be prompted to enter 'labexrhel9'

    次に、testuser02 とそのホームディレクトリを削除します。

    sudo userdel -r testuser02

    ユーザーエントリとホームディレクトリの両方が削除されていることを確認します。

    grep testuser02 /etc/passwd
    ls -ld /home/testuser02

    両方のコマンドは、testuser02 とそのホームディレクトリがもはや存在しないことを示しているはずです。

    ls: cannot access '/home/testuser02': No such file or directory

これで、ローカルユーザーアカウントの作成、変更、削除に関する練習は終わりです。

ローカルグループアカウントの管理

このステップでは、RHEL システムでローカルグループアカウントを管理する方法を学びます。グループは、権限を効率的に管理するための基本であり、複数のユーザーに同時にアクセス権を付与できます。groupaddgroupmod、および groupdel などのコマンドを使用し、ユーザーグループのメンバーシップを管理するために usermod を再検討します。

まず、新しいグループを作成しましょう。

  • groupadd コマンドを使用して、新しいグループを作成します。デフォルトでは、groupadd は、/etc/login.defs で指定された範囲から、次に利用可能な GID を割り当てます。このコマンドを実行するには、sudo 権限が必要です。developers という名前のグループを作成しましょう。

    sudo groupadd developers

    /etc/group ファイルを確認して、グループの作成を確認できます。

    grep developers /etc/group

    次のようなエントリが表示されるはずです。

    developers:x:1002:
  • また、-g オプションを使用して、グループに特定の GID を指定することもできます。特定の GID(たとえば、2000)を持つ別のグループ testers を作成しましょう。

    sudo groupadd -g 2000 testers

    testers グループの GID を確認します。

    grep testers /etc/group

    出力には、指定された GID が確認されるはずです。

    testers:x:2000:

次に、groupmod コマンドを使用して、既存のグループを変更しましょう。

  • -n オプションを使用して、グループの名前を変更できます。testersqa_team に名前変更しましょう。

    sudo groupmod -n qa_team testers

    /etc/group で名前の変更を確認します。

    grep qa_team /etc/group

    出力には、元の GID を持つ新しい名前が表示されるはずです。

    qa_team:x:2000:
  • また、-g オプションを使用して、グループの GID を変更することもできます。qa_team の GID を 2001 に変更しましょう。

    sudo groupmod -g 2001 qa_team

    GID の変更を確認します。

    grep qa_team /etc/group

    出力には、新しい GID が反映されるはずです。

    qa_team:x:2001:

次に、これらのグループ内のユーザーメンバーシップを管理しましょう。これには usermod コマンドを使用します。まず、いくつかのテストユーザーを作成します。

  • userAuserB を作成し、パスワードを labexrhel9 に設定します。

    sudo useradd userA
    sudo passwd userA

    userA のパスワードとして labexrhel9 を入力します。

    sudo useradd userB
    sudo passwd userB

    userB のパスワードとして labexrhel9 を入力します。

  • userA をセカンダリグループとして developers グループに追加します。usermod-a (append) および -G (groups) オプションを使用します。

    sudo usermod -aG developers userA

    id コマンドを使用して、userA のグループメンバーシップを確認します。

    id userA

    groups セクションに developers がリストされているはずです。

    uid=1003(userA) gid=1003(userA) groups=1003(userA),1002(developers)
  • userB をセカンダリグループとして developers グループと qa_team グループの両方に追加します。

    sudo usermod -aG developers,qa_team userB

    userB のグループメンバーシップを確認します。

    id userB

    developersqa_team の両方がリストされているはずです。

    uid=1004(userB) gid=1004(userB) groups=1004(userB),1002(developers),2001(qa_team)
  • また、usermod-g オプションを使用して、ユーザーのプライマリグループを変更することもできます。userA のプライマリグループを developers に変更しましょう。

    sudo usermod -g developers userA

    userA のプライマリグループを確認します。

    id userA

    gid フィールドに developers が表示されるはずです。

    uid=1003(userA) gid=1002(developers) groups=1002(developers)

    注:ユーザーのプライマリグループを変更すると、そのグループがセカンダリグループでもあった場合、古いプライマリグループのメンバーシップリストから削除されます。この場合、userA の元のプライマリグループ(userA)は、セカンダリグループとしてリストされなくなります。

最後に、作成したグループとテストユーザーを削除しましょう。

  • groupdel コマンドを使用して、グループを削除します。グループが任意のユーザーのプライマリグループである場合、削除することはできません。まず、developers を削除する前に、userA のプライマリグループをデフォルト(または別の既存のグループ)に戻します。

    sudo usermod -g userA userA ## Change userA's primary group back to userA
    sudo groupdel developers

    /etc/group から developers が削除されていることを確認します。

    grep developers /etc/group

    このコマンドは出力を返さないはずです。

  • qa_team グループを削除します。

    sudo groupdel qa_team

    削除を確認します。

    grep qa_team /etc/group

    このコマンドも出力を返さないはずです。

  • テストユーザーをクリーンアップします。

    sudo userdel -r userA
    sudo userdel -r userB

これで、ローカルグループアカウントとユーザーグループメンバーシップの管理に関する練習は終わりです。

ユーザーパスワードポリシーの設定

このステップでは、RHEL システムでユーザーパスワードポリシーを設定する方法を学びます。パスワードポリシーは、パスワードの複雑さ、有効期限、およびアカウントロックに関するルールを適用することにより、セキュリティを強化するために不可欠です。/etc/shadow ファイルと chage コマンドを調べます。

まず、暗号化されたパスワード情報とユーザーアカウントのパスワードエイジングパラメータを格納する /etc/shadow ファイルについて理解しましょう。このファイルは非常に機密性が高く、root ユーザーのみが読み取ることができます。

  • 各ユーザーは、/etc/shadow ファイルにエントリを持っています。デモンストレーションのために、新しいユーザー policyuser を作成し、そのパスワードを labexrhel9 に設定しましょう。

    sudo useradd policyuser
    sudo passwd policyuser

    policyuser のパスワードとして labexrhel9 を入力します。

  • 次に、/etc/shadowpolicyuser のエントリを表示します。

    sudo grep policyuser /etc/shadow

    次のような出力が表示されます。

    policyuser:$6$randomsalt$encryptedhash:19780:0:99999:7:::

    コロンで区切られた各フィールドを分解してみましょう。

    • policyuser: ユーザーアカウントの名前。
    • $6$randomsalt$encryptedhash: ユーザーの暗号化されたパスワード。
      • $6: このパスワードに使用されているハッシュアルゴリズム(SHA-512、RHEL 9 のデフォルト)。
      • randomsalt: パスワードの暗号化に使用されるソルト。元々はランダムに選択されました。
      • encryptedhash: ユーザーのパスワードの暗号化されたハッシュ。
    • 19780: パスワードが最後に変更されてからのエポック(1970-01-01 UTC)からの日数。この数値は、現在の日付によって異なります。
    • 0: ユーザーが再度変更できるようになるまでの、最後のパスワード変更からの最小日数。
    • 99999: パスワードが期限切れになるまでの、パスワード変更なしの最大日数。空のフィールドは、パスワードが期限切れにならないことを意味します。
    • 7: パスワードが期限切れになることをユーザーに警告するまでの日数。
    • (空): パスワードの期限切れからアカウントが自動的にロックされるまでの、活動がない日数。
    • (空): エポックからの日数で表される、アカウントが期限切れになる日。空のフィールドは、アカウントが期限切れにならないことを意味します。
    • 最後のフィールドは通常空で、将来の使用のために予約されています。

次に、chage コマンドを使用して、これらのパスワードエイジングパラメータを変更します。chage コマンドを使用すると、ユーザーのパスワード有効期限情報を変更できます。

  • 次のルールを使用して、policyuser のパスワードポリシーを設定しましょう。

    • パスワード変更間の最小日数:7 日(-m 7
    • パスワード変更間の最大日数:90 日(-M 90
    • パスワードの有効期限が切れる前の警告期間:14 日(-W 14
    • アカウントがロックされるまでの、パスワードの有効期限が切れた後の非アクティブ期間:30 日(-I 30
    sudo chage -m 7 -M 90 -W 14 -I 30 policyuser
  • これらの変更を確認するには、chage -l (list) を使用して、policyuser の現在のパスワードエイジング情報を表示できます。

    sudo chage -l policyuser

    新しいポリシーを反映した出力が表示されるはずです。

    Last password change     : Mar 04, 2024
    Password expires     : Jun 02, 2024
    Password inactive     : Jul 02, 2024
    Account expires      : never
    Minimum number of days between password change  : 7
    Maximum number of days between password change  : 90
    Number of days of warning before password expires : 14

    注:日付は、Lab を実行する時期によって異なります。

  • また、-E オプションを使用して、絶対的なアカウント有効期限日を設定することもできます。policyuser のアカウントを今日から 30 日で期限切れに設定しましょう。まず、今日の日付を取得し、そこから 30 日後の日付を計算します。

    EXPIRY_DATE=$(date -d "+30 days" +%Y-%m-%d)
    echo "Account will expire on: $EXPIRY_DATE"
    sudo chage -E $EXPIRY_DATE policyuser

    アカウントの有効期限日を確認します。

    sudo chage -l policyuser | grep "Account expires"

    出力には、計算された有効期限日が表示されるはずです。

    Account expires      : Apr 03, 2024

    注:日付は、現在の Lab の日付から約 30 日後になります。

  • アカウントの有効期限日を削除するには、chage -E -1 policyuser を使用できます。

    sudo chage -E -1 policyuser
    sudo chage -l policyuser | grep "Account expires"

    出力は never に戻るはずです。

    Account expires      : never

最後に、policyuser アカウントをクリーンアップします。

sudo userdel -r policyuser

これで、ユーザーパスワードポリシーの設定に関する練習は終わりです。/etc/shadow ファイルと chage コマンドを使用して、パスワードエイジングパラメータを検査および変更する方法を理解しました。

まとめ

この実験では、Red Hat Enterprise Linux (RHEL) におけるユーザーとグループ管理の基本的な概念を学びました。まず、ユーザーとグループがファイルとプロセスにどのように関連付けられているかを理解し、現在のユーザーと root のような他のシステムユーザーの両方について、id コマンドを使用してユーザーとグループの情報を検査する方法を学びました。また、ls -l コマンドと ls -ld コマンドを使用して、それぞれファイルとディレクトリの所有権を特定する練習も行いました。これは、権限とアクセス制御を理解するために不可欠です。

この実験ではさらに、スーパーユーザーアクセス権の取得、ローカルユーザーアカウントの作成と変更、ローカルグループアカウントの管理、およびユーザーパスワードポリシーの設定について説明しました。これらのステップは、重要なシステム管理タスクの実践的な経験を提供し、Linux システムでのユーザーアクセスとセキュリティを効果的に管理できるようにします。