Linux ユーザーの変更

LinuxBeginner
オンラインで実践に進む

はじめに

ユーザー管理は、Linux システム管理の基本的な側面です。パーソナルコンピュータをセットアップする場合、サーバーを管理する場合、またはマルチユーザー環境で作業する場合、ユーザーアカウントの作成、変更、管理方法を理解することは不可欠です。

この実験では、usermod コマンドを使用して、ユーザー名、ホームディレクトリ、グループメンバーシップなどのユーザー属性を変更する方法を学びます。Linux でのユーザー管理に使用される主要なコマンドの実践的な経験を積み、任意の Linux 環境でユーザーアカウントを効率的に管理するために必要なスキルを身につけます。

ユーザーの作成と名前の変更

このステップでは、新しいユーザーを作成し、その名前を変更する方法を学びます。これは、ユーザーが役割を変更したり、システム全体でユーザー名を標準化する必要がある場合に一般的なタスクです。

まず、ターミナルを開きます。すでに ~/project ディレクトリにいるはずです。temporaryuser という新しいユーザーを作成することから始めましょう。

sudo useradd temporaryuser

このコマンドは、システムに新しいユーザーアカウントを作成します。デフォルトでは、useradd はホームディレクトリを作成したり、パスワードを設定したりしません。

次に、ユーザーが正常に作成されたかどうかを確認しましょう。

grep temporaryuser /etc/passwd

出力に temporaryuser のエントリが表示され、ユーザーが作成されたことを確認できるはずです。

次に、usermod コマンドを使用して、このユーザーの名前を temporaryuser から permanentuser に変更します。

sudo usermod -l permanentuser temporaryuser

-l オプションは、ログイン名を変更することを指定します。このコマンドを実行すると、以前は temporaryuser として知られていたユーザーは、permanentuser として知られるようになります。

ユーザー名が変更されたことを確認しましょう。

grep permanentuser /etc/passwd

新しい名前 permanentuser を持つユーザーエントリが表示されるはずです。

次に、このユーザーのホームディレクトリを作成して割り当てます。

sudo usermod -d /home/permanentuser -m permanentuser

このコマンドでは:

  • -d は新しいホームディレクトリのパスを指定します
  • -m は、新しいホームディレクトリが存在しない場合は作成し、両方が存在する場合は古いホームディレクトリから新しいホームディレクトリにコンテンツを移動します

ホームディレクトリが作成されたことを確認しましょう。

ls -ld /home/permanentuser

permanentuser のために新しく作成されたホームディレクトリが表示されるはずです。

ユーザーをグループに追加する

Linux では、グループはユーザーを組織し、権限を管理するために使用されます。ユーザーを特定のグループに追加することは、特定のリソースや機能へのアクセス権を付与する重要な方法です。

まず、現在のユーザーがどのグループに所属しているかを確認しましょう。

groups permanentuser

デフォルトでは、useradd でユーザーを作成すると、ユーザーはユーザー名と同じ名前のプライマリグループに割り当てられます。

次に、システム上に sudo グループが存在するかどうかを確認しましょう。

grep sudo /etc/group

sudo グループのエントリが表示されるはずです。この特別なグループのメンバーは、sudo コマンドを使用してスーパーユーザー権限でコマンドを実行することができます。

ユーザーを sudo グループに追加しましょう。

sudo usermod -aG sudo permanentuser

このコマンドでは:

  • -a は「追加する」を意味し、他のグループからユーザーを削除せずにグループに追加することを保証します。
  • -G はユーザーを追加するグループを指定します。
  • sudo はグループの名前です。
  • permanentuser は変更するユーザーです。

ユーザーが sudo グループに追加されたことを確認しましょう。

groups permanentuser

出力には、グループのリストに sudo が含まれているはずです。

/etc/group ファイルを見ることでもグループメンバーシップを確認できます。

grep sudo /etc/group

出力には、sudo グループのメンバーリストに permanentuser が含まれているはずです。

ユーザーのシェルを変更する

Linux の各ユーザーには、ログイン時に使用するコマンドラインインターフェイスを決定するデフォルトのシェルがあります。このステップでは、ユーザーのログインシェルを変更する方法を学びます。

まず、現在のユーザーに割り当てられているシェルを確認しましょう。

grep permanentuser /etc/passwd

出力の最後のフィールドを見てください。これは現在のシェルを示しており、追加オプションなしで useradd で作成されたユーザーの場合は通常 /bin/sh です。

次に、より機能が豊富なシェルである Bash にシェルを変更しましょう。

sudo usermod -s /bin/bash permanentuser

-s オプションは、ユーザーの新しいログインシェルを指定します。

シェルが変更されたことを確認しましょう。

grep permanentuser /etc/passwd

行の末尾には、permanentuser のシェルとして /bin/bash が表示されるはずです。

異なるシェルは、異なる機能とユーザー体験を提供します。Bash は、次のような高度な機能を提供するため、最も人気のあるシェルの 1 つです。

  • コマンド補完
  • コマンド履歴のナビゲーション
  • カスタマイズ可能なプロンプト
  • 関数と制御構造を使用したスクリプト機能

Linux で一般的な他のシェルには、以下のようなものがあります。

  • /bin/sh - Bourne Shell、基本的なシェル
  • /bin/zsh - Z Shell、Bash を超えた追加機能を備えたシェル
  • /bin/dash - Debian Almquist Shell、軽量なシェル

ユーザーは、chsh コマンドを使用してセッション中にインストールされているシェルを切り替えることができます。また、管理者は先ほど行ったように usermod を使用してユーザーのデフォルトシェルを変更することができます。

アカウント有効期限の設定とユーザー情報の表示

システム管理者は、一時的なアカウントを作成したり、定期的にアカウントをレビューする必要があることがよくあります。このステップでは、アカウントの有効期限を設定する方法と、包括的なユーザー情報を表示する方法を学びます。

アカウントの有効期限を設定する

permanentuser アカウントの有効期限を設定しましょう。これは、特定の期間だけアクセス権を持つ一時的なユーザーや請負業者に役立ちます。

sudo usermod -e 2023-12-31 permanentuser

-e オプションは、YYYY-MM-DD 形式で有効期限を設定します。この日付以降、アカウントは自動的に無効になります。

有効期限が設定されたことを確認するには:

sudo chage -l permanentuser

chage -l コマンドは、アカウントの有効期限情報を表示します。出力には、設定した日付が表示される「Account expires」の行が含まれます。

詳細なユーザー情報を表示する

Linux でユーザー情報を表示するには、いくつかのコマンドがあります。それらを見てみましょう。

  1. ユーザー ID、グループ ID、およびグループメンバーシップを確認する:
id permanentuser

このコマンドは、数値のユーザー ID (UID)、プライマリグループ ID (GID)、およびユーザーが所属するすべてのグループを表示します。

  1. パスワードの状態と有効期限情報を表示する:
sudo passwd -S permanentuser

このコマンドは、パスワードの状態(ロックされている、期限切れなど)と最後に変更された日時を表示します。

  1. システム内のすべてのユーザーを表示する:
cat /etc/passwd | grep -v nologin | grep -v false

このコマンドは、パスワードファイルをフィルタリングして、ログインできるユーザー(システムユーザーを除く)のみを表示します。

  1. システム上のすべてのグループを表示する:
cat /etc/group

これは、システム上で定義されているすべてのグループ(システムグループとユーザーグループを含む)を表示します。

ユーザー情報を効率的に取得する方法を理解することは、システム管理とユーザーアクセスの問題のトラブルシューティングに不可欠です。

まとめ

この実験では、Linux における重要なユーザー管理タスクを学びました。

  1. usermod -l コマンドを使用してユーザーを作成し、名前を変更する
  2. usermod -d -m を使用してユーザーのホームディレクトリを設定する
  3. usermod -aG を使用してユーザーを補助グループに追加する
  4. usermod -s を使用してユーザーのログインシェルを変更する
  5. usermod -e を使用してアカウントの有効期限を設定する
  6. idchage などのコマンドやシステムファイルを調べることでユーザー情報を表示する

これらのユーザー管理スキルは、すべての Linux 管理者にとって基本的なものです。usermod コマンドは、ユーザーアカウントを削除して再作成することなく、ユーザー属性を変更するための多機能なツールセットを提供します。

これらのコマンドを習得することで、単一ユーザーのワークステーション、多ユーザーのサーバー、またはさまざまなアクセスレベルを必要とする多数のユーザーがいるエンタープライズ環境など、あらゆる Linux 環境でユーザーアカウントを効率的に管理することができます。