この記事では、Unixでのユーザー管理について詳しく説明します。
Unixシステムには3種類のアカウントがあります
目次
ルートアカウント
これはスーパーユーザーとも呼ばれ、制限なしにシステムを完全に制御できます。 スーパーユーザーは、制限なしで任意のコマンドを実行できます。 ユーザーはシステム管理者であると想定する必要があります。
システムアカウント
システムアカウントは、メールアカウントやsshdアカウントなどのシステム固有のコンポーネントを操作するためのアカウントです。 これらのアカウントは通常、システムの特定の機能に必要であるため、それらを変更した後、システムに悪影響を与える可能性があります。
ユーザーアカウント
ユーザーアカウントは、ユーザーとユーザーグループにシステムへの対話型アクセスを提供します。 一般的なユーザーは通常、これらのアカウントに割り当てられ、主なシステムファイルとディレクトリにのみアクセスできます。
Unixはグループアカウントをサポートし、複数のアカウントを論理的にグループ化します。各アカウントは、別のアカウントグループの一部です。 Unixグループは、ファイルのアクセス許可とプロセス管理を処理する上で重要な役割を果たします。
ユーザーとグループを管理する
4つの主なユーザー管理ファイルがあります-
- /etc/passwd-ユーザーアカウントとパスワードの情報を保持します。 このファイルには、Unixシステムのアカウントに関するほとんどの情報が含まれています。
- /etc/shadow-対応するアカウントの暗号化されたパスワードを持ってます。 すべてのシステムがこのファイルをサポートしているわけではありません。
- /etc/group-このファイルには、各アカウントのグループ情報が含まれています。
- /etc/gshadow-このファイルには、安全的なグループアカウント情報が含まれています。
cat
コマンドを使用して、上記のすべてのファイルを確認します。
次の表には、ほとんどのUnixシステムでアカウントとグループを作成および管理するために使用できるコマンドを示します。
番号 | コマンドと説明 |
1 | useradd アカウントをシステムに追加します |
2 | usermod アカウントのプロパティを変更します |
3 | userdel システムからアカウントを削除します |
4 | groupadd システムにグループを追加します |
5 | groupmod グループのプロパティを変更します |
6 | groupdel システムからグループを削除します |
グループを作成する
次には、グループの作成方法を説明します。アカウントを作成する前にグループを作成する必要があります。そうしなければ、システム内の既存のグループも利用できます。/etc/groups
ファイルにすべてのグループをリストしました。
デフォルトのグループはすべてシステムアカウント固有のグループであるため、通常のアカウントに使用させることはお勧めしません。 そのため、以下は新しいグループアカウントを作成するための構文です-
groupadd [-g gid [-o]] [-r] [-f] groupname
次の表にパラメータを示します-
番号 | オプションと説明 |
1 | -g GID グループID値 |
2 | -o このオプションを使用すると、一意でないGIDを持つグループを追加できます |
3 | -r groupaddにシステムアカウントを追加するように指示します |
4 | -F 指定されたグループがすでに存在する場合、このオプションにより正常に終了します。 -gを使用します。指定したGIDがすでに存在する場合は、別の(一意の)GIDを選択します。 |
5 | group 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を指定できます。 |
6 | accountname 作成する実際のアカウント名です。 |
パラメータが指定されていない場合、システムはデフォルト値を使用します。 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パラメータを加えて、アカウント名を変更できます。
例えば、アカウント名mcmohd
をmcmohd20
に変更し、それに応じてホームディレクトリを変更するには、次のコマンドを発行する必要があります。
$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20
アカウントを削除する
userdel
コマンドを使用して、既存のユーザーを削除できます。 不注意に使用すると、これは危険なコマンドになります。
.r
コマンドには、アカウントのホームディレクトリとメールファイルを削除するためのパラメータまたはオプションが1つだけあります。
例えば、アカウントmcmohd20を削除するには、次のコマンドを発行します-
$ userdel -r mcmohd20
バックアップ用にホームディレクトリを保持する場合は、-r
オプションを省略してください。 必要に応じて、後でホームディレクトリを削除できます。
コメントを残す