LFCA:ユーザーアカウント管理の学習–パート5


Linuxシステム管理者は、組織内のすべてのIT運用の円滑な流れを確保するという任務を負います。一部のIT運用が絡み合っていることを考えると、システム管理者は通常、データベースまたはネットワーク管理者であることを含め、多くの帽子をかぶっています。

この記事はLFCAシリーズのパート5です。このパートでは、Linuxシステムでユーザーを作成および管理するための一般的なシステム管理コマンドについて理解します。

Linuxでのユーザーアカウント管理

Linuxシステム管理者の主な責任の1つは、Linuxシステムでユーザーを作成および管理することです。各ユーザーアカウントには、ユーザー名とユーザーID(UID)の2つの一意の識別子があります。

基本的に、Linuxのユーザーには次の3つの主要なカテゴリがあります。

rootユーザーは、Linuxシステムで最も強力なユーザーであり、通常、インストールプロセス中に作成されます。 rootユーザーは、Linuxシステムまたはその他のUNIXライクなOSで絶対的な力を持っています。ユーザーは、すべてのコマンド、ファイル、およびディレクトリにアクセスし、システムを好みに合わせて変更できます。

rootユーザーは、システムの更新、パッケージのインストールとアンインストール、他のユーザーの追加と削除、アクセス許可の付与または取り消し、およびその他のシステム管理タスクを制限なしで実行できます。

rootユーザーは、システム上でほぼ何でもできます。 LinuxおよびUNIXライクなシステムは、システムで何をしているのかを十分に理解していることを前提としています。そうは言っても、rootユーザーは簡単にシステムを壊すことができます。致命的なコマンドを実行するだけで、システムは煙に包まれます。

このため、rootユーザーとしてコマンドを実行することは強くお勧めしません。代わりに、sudoユーザーを構成する必要があることをお勧めします。つまり、通常のユーザーにsudo権限を付与して、特定の管理タスクを実行し、一部のタスクをrootユーザーのみに制限します。

通常のユーザーは、システム管理者が作成できる通常のログインユーザーです。通常、インストールプロセス中に作成するためのプロビジョニングがあります。ただし、インストール後に必要な数の通常のユーザーを作成することはできます。

通常のユーザーは、タスクを実行し、許可されているファイルとディレクトリにのみアクセスできます。必要に応じて、通常のユーザーに管理者レベルのタスクを実行するための昇格された特権を付与できます。通常のユーザーは、必要に応じて削除または無効にすることもできます。

これは、ソフトウェアパッケージのインストール時に作成される非ログインアカウントです。このようなアカウントは、システムでプロセスを実行するためにサービスによって使用されます。これらは、システム内のルーチンまたは管理タスクを実行するように設計または意図されていません。

ユーザー管理ファイル

Linuxシステムのユーザーに関する情報は、次のファイルに保存されています。

  • /etc/passwdファイル
  • /etc/groupファイル
  • /etc/gshadowファイル
  • /etc/shadowファイル

各ファイルとその機能を理解しましょう。

/ etc/passwdファイルには、さまざまなフィールドに含まれるユーザーに関するかなりの情報が含まれています。ファイルの内容を表示するには、図のようにcatコマンドを使用するだけです。

$ cat /etc/passwd

これが出力の抜粋です。

tecmint:x:1002:1002:tecmint,,,:/home/tecmint:/bin/bash

最初の行に焦点を当てて、さまざまなフィールドを具体化しましょう。左端から始めて、次のようになります。

  • ユーザー名:これはユーザーの名前です。この場合はtecmintです。
  • パスワード:2番目の列は、ユーザーの暗号化されたパスワードを表します。パスワードはプレーンテキストで印刷されません。代わりに、x記号の付いたプレースホルダーが使用されます。
  • UID:これはユーザーIDです。これは、すべてのユーザーに固有の識別子です。
  • GID:これはグループIDです。
  • ユーザーの簡単な説明または要約。
  • これは、ユーザーのホームディレクトリへのパスです。 tecmintユーザーには、/ home/tecmintがあります。
  • これはログインシェルです。通常のログインユーザーの場合、これは通常/ bin/bashとして表されます。 SSHやMySQLなどのサービスアカウントの場合、これは通常/ bin/falseとして表されます。

このファイルには、ユーザーグループに関する情報が含まれています。ユーザーが作成されると、シェルはユーザーのユーザー名に対応するグループを自動的に作成します。これはプライマリグループとして知られています。ユーザーは、作成時にプライマリグループに追加されます。

たとえば、bobというユーザーを作成すると、システムは自動的にbobというグループを作成し、ユーザーbobをグループに追加します。

$ cat /etc/group

tecmint:x:1002:

/ etc/groupファイルには3つの列があります。左端から、次のようになります。

  • グループ名。各グループ名は一意である必要があります。
  • グループパスワード。通常、xプレースホルダーで表されます。
  • グループID(GID)
  • グループメンバー。これらはグループに属するメンバーです。ユーザーがグループ内の唯一のメンバーである場合、このフィールドは空白のままになります。

注:ユーザーは複数のグループのメンバーになることができます。同様に、グループは複数のメンバーを持つことができます。

ユーザーが属するグループを確認するには、次のコマンドを実行します。

$ groups username

たとえば、ユーザーtecmintが属するグループを確認するには、次のコマンドを実行します。

$ groups tecmint

出力は、ユーザーがtecmintとsudoの2つのグループに属していることを確認します。

tecmint : tecmint sudo

このファイルには、グループアカウントの暗号化された、または「シャドウされた」パスワードが含まれており、セキュリティ上の理由から、通常のユーザーはアクセスできません。 rootユーザーとsudo権限を持つユーザーのみが読み取ることができます。

$ sudo cat /etc/gshadow

tecmint:!::

左端から、ファイルには次のフィールドが含まれています。

  • グループ名
  • 暗号化されたグループパスワード
  • グループ管理者
  • グループメンバー

/ etc/shadowファイルは、ユーザーの実際のパスワードをハッシュまたは暗号化された形式で保存します。この場合も、フィールドはコロンで区切られ、示されている形式を取ります。

$ sudo cat /etc/shadow

tecmint:$6$iavr8PAxxnWmfh6J$iJeiuHeo5drKWcXQ.BFGUrukn4JWW7j4cwjX7uhH1:18557:0:99999:7:::

ファイルには9つのフィールドがあります。左端から始めて、次のようになります。

  • ユーザー名:これはログイン名です。
  • ユーザーのパスワード。これは、ハッシュまたは暗号化された形式で表示されます。
  • 最後のパスワード変更。これは、パスワードが変更されてからの日付であり、エポック日付から計算されます。エポックは1970年1月1日です。
  • パスワードの最小有効期間。これは、パスワードを設定するまでに経過する必要のある最小日数です。
  • パスワードの最大有効期間。これは、パスワードを変更する必要がある最大日数です。
  • 警告期間。名前が示すように、これは、パスワードの有効期限が切れる直前に、ユーザーにパスワードの有効期限が迫っていることを通知する日数です。
  • 非アクティブ期間。パスワードの有効期限が切れてから、ユーザーがパスワードを変更せずにユーザーアカウントが無効になる日数。
  • 有効期限。ユーザーアカウントの有効期限が切れた日付。
  • 予約済みフィールド。 –これは空白のままです。

Linuxシステムにユーザーを追加する方法

DebianおよびUbuntuディストリビューションの場合、ユーザーの追加にはadduserユーティリティが使用されます。

構文は非常に単純で単純です。

# adduser username

たとえば、bobというユーザーを追加するには、コマンドを実行します

# adduser bob

出力から、「bob」というユーザーが作成され、「bob」という新しく作成されたグループに追加されます。さらに、システムはホームディレクトリも作成し、そこに構成ファイルをコピーします。

その後、新しいユーザーのパスワードの入力を求められ、確認します。シェルは、ユーザーのフルネームと、部屋番号や職場の電話などの他のオプション情報の入力も求めます。この情報は実際には必要ないため、スキップしても安全です。最後に、‘Y’ を押して、提供された情報が正しいことを確認します。

RHELおよびCentOSベースシステムの場合は、useraddコマンドを使用します。

# useradd bob

次に、passwdコマンドを使用してユーザーのパスワードを次のように設定します。

# passwd bob

Linuxシステムでユーザーを削除する方法

システムからユーザーを削除するには、図のように、最初にユーザーがシステムにログインできないようにロックすることをお勧めします。

# passwd -l bob

必要に応じて、tarコマンドを使用してユーザーのファイルをバックアップできます。

# tar -cvf /backups/bob-home-directory.tar.bz2  /home/bob

最後に、ホームディレクトリと一緒にユーザーを削除するには、次のようにdeluserコマンドを使用します。

# deluser --remove-home bob

さらに、示されているようにuserdelコマンドを使用できます。

# userdel -r bob

2つのコマンドは、ホームディレクトリと一緒にユーザーを完全に削除します。

これは、特にオフィス環境でユーザーアカウントを管理するときに役立つユーザー管理コマンドの概要です。システム管理スキルを磨くために、時々試してみてください。