この章では、Unixにおけるユーザ管理について詳しく説明します。
Unixシステムには3種類のアカウントがあります –
Contents
ルートアカウント
これはスーパーユーザーとも呼ばれ、システムの完全かつ自由に制御できます。スーパーユーザーは、何の制限もなくコマンドを実行できます。このユーザーは、システム管理者である必要があります。
su コマンドをさしますね
システムアカウント
システムアカウントは、メールアカウントやsshdアカウントなどのシステム固有のコンポーネントの操作に必要なアカウントです。これらのアカウントは通常、システム上の特定の機能に必要です。これらのアカウントを変更するとシステムに影響を与える可能性があります。
ユーザーアカウント
ユーザーアカウントは、ユーザーおよびユーザーグループのシステムへのアクセスができるように提供します。通常、一般ユーザーはこれらのアカウントに割り当てられ、通常、重要なシステムファイルやディレクトリへのアクセスは制限されています。
Unixは論理的に複数のアカウントをグループ化するGroup Accountの概念をサポートしています。すべてのアカウントは、別のグループアカウントの一部になります。Unixグループは、ファイルのアクセス許可やプロセス管理の処理に重要な役割を果たします。
ユーザーとグループの管理
4つの主なユーザー管理ファイルがあります。
- / etc / passwd – ユーザーアカウントとパスワード情報を保持します。このファイルには、Unixシステム上のアカウントに関する大部分の情報が格納できるようになっています
- / etc / shadow – 対応するアカウントの暗号化されたパスワードを保持します。すべてのシステムがこのファイルをサポートしているわけではありませんのでご注意を。
- / etc / group – このファイルには、各アカウントのグループ情報が含まれています。
- / etc / gshadow – このファイルには、安全なグループアカウント情報が含まれています。
catコマンドを使用して上記のファイルをすべて確認してください。
次の表は、Unixシステムの大半でアカウントとグループの作成と管理に使用できるコマンドをリストしたものです。
S.No. | コマンドと説明 |
---|---|
1 | useradd
システムにアカウントを追加する |
2 | usermod
アカウントの属性を変更する |
3 | userdel
システムからアカウントを削除します。 |
4 | group
グループの属性変化 |
5 | groupadd
グループに追加 |
6 | groupdel
グループをシステムから削除します。 例として:hoge_groupを削除する場合。
[root@localhost ~]# groupdel hoge_group
|
グループを作成する
アカウントを作成する前にグループを作成しなければなりません。既存のグループを利用し作成しましょう。/ etc / groupsファイルにすべてのグループがリストされています。
すべての既定のグループはシステムアカウント固有のグループであり、通常のアカウントには使用しないことをお勧めします。したがって、新しいグループアカウントを作成するための構文は次のとおりです。
groupadd [-g gid [-o]] [-r] [-f] groupname
次の表は、
S.No. | オプションと説明 |
---|---|
1 | -g GID
グループのIDの数値 |
2 | -o
このオプションを使用すると、一意でないGIDを持つグループを追加できます |
3 | -r
このフラグはgroupaddにシステムアカウントを追加するよう指示します |
4 | -f
このオプションを指定すると、指定したグループがすでに存在する場合に成功ステータスで終了します。-gを指定すると、指定されたGIDがすでに存在する場合は、他の(一意の)GIDが選択されます |
5 | groupname
作成される実際のグループ名 |
パラメーターを指定しないと、システムはデフォルト値を使用します。
次の例では、デフォルト値を持つeigyoグループを作成します。これは、ほとんどの管理者にとって大変受け入れやすいものです。
$ groupadd eigyo
グループを変更する
グループを変更するには、groupmod構文を使用します。
$ groupmod -n new_modified_group_name old_group_name
developers_2のグループ名を開発者に変更するには、
$ 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
次の表は、
S.No. | オプションと説明 |
---|---|
1 | -d homedir
アカウントのホームディレクトリを指定します。 |
2 | -g groupname
このアカウントのグループアカウントを指定します。 |
3 | -m
ホームディレクトリが存在しない場合は作成します。 |
4 | -s shell
このアカウントのデフォルトシェルを指定します。 |
5 | -u userid
このアカウントのユーザーIDを指定することができます |
6 | accountname
作成される実際のアカウント名 |
パラメーターを指定しないと、システムはデフォルト値を使用します。useraddのコマンドは、変更/ etc / passwdファイル、の/ etc / shadowを、とは/ etc /グループファイルをホームディレクトリを作成します。
次に、アカウントmcmohdを作成し、そのホームディレクトリを/ home / mcmohdに設定し、グループをeigyoとして設定する例を示します。
$ useradd -d /home/mcmohd -g eigyo -s /bin/ksh mcmohd
上記のコマンドを発行する前に、すでにgroupaddコマンドを使用してeigyoグループを作成していることを確認してください。
アカウントが作成されると、次のようにpasswdコマンドを使用してパスワードを設定できます。
$ passwd mcmohd20 Changing password for user mcmohd20. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
あなたが入力するときはpasswdアカウント名を、それはあなたがスーパーで提供される、あなたのパスワードを変更するオプションを提供します。それ以外の場合は、アカウント名を指定せずに同じコマンドを使用してパスワードを変更することができます。
アカウントを変更する
usermodのコマンドは、コマンドラインから既存のアカウントに変更を加えることができます。useraddコマンドと同じ引数と-l引数を使用して、アカウント名を変更できます。
たとえば、アカウント名mcmohdをmcmohd20に変更し、それに応じてホームディレクトリを変更するには、次のコマンドを実行する必要があります。
$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20
アカウントを削除する
でuserdelコマンドは、既存のユーザーを削除するために使用することができます。これは慎重に使用しないと非常に危険なコマンドです。
アカウントのホームディレクトリとメールファイルを削除するために、コマンド.rに使用できる引数またはオプションは1つだけです。
たとえば、アカウントmcmohd20を削除するには、次のコマンドを実行します。
$ userdel -r mcmohd20
バックアップのためにホームディレクトリを保持する場合は、-rオプションを省略します。後で必要に応じてホームディレクトリを削除できます。