Unix/Linux-ユーザー管理

この記事では、Unixでのユーザー管理について詳しく説明します。

Unixシステムには3種類のアカウントがあります

ルートアカウント

これはスーパーユーザーとも呼ばれ、制限なしにシステムを完全に制御できます。 スーパーユーザーは、制限なしで任意のコマンドを実行できます。 ユーザーはシステム管理者であると想定する必要があります。

システムアカウント

システムアカウントは、メールアカウントやsshdアカウントなどのシステム固有のコンポーネントを操作するためのアカウントです。 これらのアカウントは通常、システムの特定の機能に必要であるため、それらを変更した後、システムに悪影響を与える可能性があります。

ユーザーアカウント

ユーザーアカウントは、ユーザーとユーザーグループにシステムへの対話型アクセスを提供します。 一般的なユーザーは通常、これらのアカウントに割り当てられ、主なシステムファイルとディレクトリにのみアクセスできます。

Unixはグループアカウントをサポートし、複数のアカウントを論理的にグループ化します。各アカウントは、別のアカウントグループの一部です。 Unixグループは、ファイルのアクセス許可とプロセス管理を処理する上で重要な役割を果たします。

ユーザーとグループを管理する

4つの主なユーザー管理ファイルがあります-

  • /etc/passwd-ユーザーアカウントとパスワードの情報を保持します。 このファイルには、Unixシステムのアカウントに関するほとんどの情報が含まれています。
  • /etc/shadow-対応するアカウントの暗号化されたパスワードを持ってます。 すべてのシステムがこのファイルをサポートしているわけではありません。
  • /etc/group-このファイルには、各アカウントのグループ情報が含まれています。
  • /etc/gshadow-このファイルには、安全的なグループアカウント情報が含まれています。

catコマンドを使用して、上記のすべてのファイルを確認します。

次の表には、ほとんどのUnixシステムでアカウントとグループを作成および管理するために使用できるコマンドを示します。

番号コマンドと説明
1useradd
アカウントをシステムに追加します
2usermod
アカウントのプロパティを変更します
3userdel
システムからアカウントを削除します
4groupadd
システムにグループを追加します
5groupmod
グループのプロパティを変更します
6groupdel
システムからグループを削除します

グループを作成する

次には、グループの作成方法を説明します。アカウントを作成する前にグループを作成する必要があります。そうしなければ、システム内の既存のグループも利用できます。/etc/groupsファイルにすべてのグループをリストしました。

デフォルトのグループはすべてシステムアカウント固有のグループであるため、通常のアカウントに使用させることはお勧めしません。 そのため、以下は新しいグループアカウントを作成するための構文です-

groupadd [-g gid [-o]] [-r] [-f] groupname

次の表にパラメータを示します-

番号オプションと説明
1-g GID
グループID値
2-o
このオプションを使用すると、一意でないGIDを持つグループを追加できます
3-r
groupaddにシステムアカウントを追加するように指示します
4-F
指定されたグループがすでに存在する場合、このオプションにより正常に終了します。 -gを使用します。指定したGIDがすでに存在する場合は、別の(一意の)GIDを選択します。
5group name
作成するグループ名です

パラメータが指定されていない場合、システムはデフォルト値を使用します。

以下の実例では、デフォルト値を使用して開発者グループを作成します。これは、ほとんどの管理者にとって納得できます。

$ groupadd developers

グループを変更する

グループを変更するには、groupmod構文を使用します-

$ groupmod -n new_modified_group_name old_group_name

developers_2グループ名をdeveloperに変更するには、次の構文を入力します-

$ groupmod -n developer developer_2

これは、GIDを545に変更する方法です-

$ groupmod -g 545 developer

グループを削除する

次には、グループを削除する方法を説明します。 既存のグループを削除するには、groupdelコマンドとグループ名のみが必要です。 財務グループを削除するには、コマンドは次のとおりです。

$ groupdel developer

これにより、グループが削除されるだけで済み、グループに関連付けられているファイルは削除されません。 ファイルの所有者はまた、ファイルにアクセスできます。

アカウントを作成する

次には、Unixシステムで新しいアカウントを作成する方法をご覧ください。 以下は、ユーザーアカウントを作成するための構文です-

useradd -d homedir -g groupname -m -s shell -u userid accountname

次の表にパラメータを示します-

番号オプションと説明
1-d homedirアカウントのホームディレクトリを指定します。
2-g グループ名 このアカウントのグループアカウントを指定します。
3-mホームディレクトリを作成します。(存在しない場合)
4-s shell このアカウントのデフォルトshellを指定します。
5-u useridこのアカウントのユーザーIDを指定できます。
6accountname作成する実際のアカウント名です。

パラメータが指定されていない場合、システムはデフォルト値を使用します。 useraddコマンドは、/etc/passwdファイル、/etc/shadowファイル、および/etc/groupファイルを変更し、ホームディレクトリを作成します。

以下は、アカウントmcmohdを作成し、そのホームディレクトリを/home/mcmohdに設定し、グループを開発者に設定する例です。 このユーザーにはKorn Shellが割り当てられます。

$ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd

上記のコマンドを発行する前に、groupaddコマンドを使用して開発者グループが作成されていることを確認してください。

アカウントを作成した後、passwdコマンドを使用して次のようにパスワードを設定できます-

$ passwd mcmohd20
Changing password for user mcmohd20.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

passwd accountnameを入力する時、スーパーユーザーの場合は、パスワードを変更するオプションが表示されます。 それ以外の場合は、同じコマンドを使用して、アカウント名を指定せずにパスワードのみを変更できます。

アカウントを変更する

usermodコマンドを使用すると、コマンドラインから既存のアカウントに変更を加えることができます。 useraddコマンドと同じパラメータを使用し、-lパラメータを加えて、アカウント名を変更できます。

例えば、アカウント名mcmohdmcmohd20に変更し、それに応じてホームディレクトリを変更するには、次のコマンドを発行する必要があります。

$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20

アカウントを削除する

userdelコマンドを使用して、既存のユーザーを削除できます。 不注意に使用すると、これは危険なコマンドになります。

.rコマンドには、アカウントのホームディレクトリとメールファイルを削除するためのパラメータまたはオプションが1つだけあります。

例えば、アカウントmcmohd20を削除するには、次のコマンドを発行します-

$ userdel -r mcmohd20

バックアップ用にホームディレクトリを保持する場合は、-rオプションを省略してください。 必要に応じて、後でホームディレクトリを削除できます。

Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です