前書き

FreeBSDでは、他のUnixライクなOSと同様に、ユーザーアカウントを作成してシステムへの対話型アクセスを提供できます。 ユーザーアカウントを適切に管理すると、個々のユーザーのアクセスを、タスクの実行に必要なファイルとディレクトリのみに制限する方法を提供することにより、システムセキュリティのレイヤーを追加できます。

このチュートリアルでは、FreeBSDサーバーで次のユーザー管理タスクを実行する方法を示します。

  • ユーザーを追加する

  • スーパーユーザー特権を付与する

  • ユーザーを削除する

  • ユーザーアカウントをロックする

  • ユーザーアカウントのロックを解除する

前提条件

このチュートリアルを実行するには、FreeBSDサーバーへの* root *アクセスが必要です。 つまり、ルートまたはスーパーユーザー権限を持つ別のユーザーとして、 `+ sudo `コマンドを使用してサーバーにログインできる必要があります。 ルートの使用を計画している場合は、コマンド例の「 sudo +」部分を省略できます。

ユーザーを追加する方法

新しいユーザーを追加する最も簡単な方法は、提供されている `+ adduser `ユーティリティを使用することです。これは ` pw `コマンドに基づいています。 「 adduser 」コマンドは、「 passwd 」、「 master.passwd 」、および「 group +」ファイルに必要な追加を行い、新しいユーザーのホームディレクトリを作成することにより、システムにユーザーを追加します。 新しいユーザーに関する情報を収集するプロンプトを使用して対話形式で実行することも、ユーザーのバッチを追加するのに適した非対話形式で実行することもできます。 インタラクティブモードでの使用について説明します。

一度に1人のユーザーを作成できる_interactive mode_で `+ adduser +`を使用してユーザーを追加するには、次のような引数なしでコマンドを実行します。

sudo adduser

この時点で、一連のプロンプトに応答して、新しいユーザーに関する情報を提供する必要があります。 ここで、プロンプトの例を見てみましょう。応答の例を赤で示しています。

Username:
Full name:
Uid (Leave empty for default):
Login group [sammy]:
Login group is sammy. Invite sammy into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/sammy]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:

プロンプトの多くは、デフォルトの応答を選択するために空のままにすることができます。たとえば、角括弧( `+ [yes] +`はデフォルト値を示します)ですが、ここで説明するいくつかの重要なプロンプトがあります。

  • ユーザー名:これは一目瞭然です。 新しいユーザーの目的の名前を指定します

  • ログイングループは<user>です。 <user>を他のグループに招待しますか?:このフィールドでは、スペースで区切られたリストで目的のグループを指定することで、ユーザーを追加のグループに追加できます。 これの最も一般的な使用法は、FreeBSDの + wheel +`グループに追加することで新しいユーザーにスーパーユーザー(sudo)特権を付与することです。+ wheel + `グループのメンバーはスーパーユーザー特権でコマンドを実行できます。 通常の(特権のない)ユーザーを作成する場合は、空白のままにしてください。

この時点までのその他のプロンプトはすべて一目瞭然であり、パスワードプロンプトは別として、デフォルトのままにしておくことができます。 もちろん、ユーザーのUidやホームディレクトリなど、他の詳細を変更する必要がある場合は、デフォルト以外の応答を提供してください。 プロンプトの詳細な説明を探している場合、詳細については `+ man adduser +`を実行してください。

プロンプトに答えると、新しいユーザーの概要が表示されます。

Username   : sammy
Password   : *****
Full Name  : Sammy Shark
Uid        : 1002
Class      :
Groups     : sammy wheel
Home       : /home/sammy
Home Mode  :
Shell      : /bin/sh
Locked     : no
OK? (yes/no):

ユーザー情報を確認した後、「+ yes 」または「 no +」で* OK?*プロンプトに応答します。 応答により、ユーザーが作成されるかどうかが決まります。

「+ yes +」と応答すると、ユーザーが作成され、確認が提供されます。

adduser: INFO: Successfully added (sammy) to the user database.

ユーザーを作成するかどうかにかかわらず、次のプロンプトが表示されます。

Add another user? (yes/no):
Goodbye!

終了したら、「+ no 」で応答します。 それ以外の場合は、「 yes +」で応答し、プロセスを繰り返して追加の新しいユーザーを作成します。

この時点で、作成したユーザーを使用できます。 セキュリティを強化するためにSSHキー認証を設定できます。https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-freebsd-server [checkこのチュートリアルをご覧ください。]

Sudo特権を付与する方法

FreeBSDでは、他のUnixライクなOSと同様に、 `+ sudo `コマンドを介して_superuser_権限でコマンドを実行する機能をユーザーに付与できます。 ` sudo `コマンドを使用すると、ユーザーは別のユーザーとしてコマンドを実行できます。 通常のユーザーにスーパーユーザー特権を付与し、コマンドが ` root +`としてコマンドを実行できるようにする方法を示します。

FreeBSDでは、 `+ wheel `グループのメンバーであるユーザーは ` sudo `を使用できます。 これは、デフォルトの* sudoers *ファイルである ` / usr / local / etc / sudoers +`の次の行が原因です。

%wheel ALL=(ALL) NOPASSWD: ALL

したがって、通常のユーザーにスーパーユーザー権限を付与する1つの方法は、ユーザーを `+ wheel `グループに追加することです。 ユーザーを ` wheel `グループに追加するには、この ` pw groupmod +`コマンドを使用します(強調表示されたユーザー名を置き換えます):

sudo pw groupmod wheel -m

このコマンドは、指定されたユーザーを + / etc / group`ファイルの + wheel`グループに追加するため、ユーザーにコマンドをスーパーユーザーとして実行する権限を付与します。

ユーザーを削除する方法

FreeBSDシステムからユーザーを削除する簡単な方法は、 `+ rmuser +`コマンドを使用することです。 引数なしで実行するか、削除するユーザーを引数として渡し、プロンプトに従ってユーザー削除プロセスを完了することができます。

sudo rmuser

引数としてユーザー名を指定しない場合、1つ以上の入力を求められます。 次に、ユーザーのホームディレクトリを削除する必要があるかどうかを確認するよう求められます。

Please enter one or more usernames:
Matching password entry:

sammy:*:1002:1002::0:0:Sammy Shark:/home/sammy:/bin/sh

Is this the entry you wish to remove?
Remove user's home directory (/home/sammy)?
Removing user (sammy): mailspool home passwd.

ユーザーアカウントをロックする方法

システムへのユーザーのアクセスを無効にするが、アカウントレコードとホームディレクトリを削除しない場合は、アカウントをロックできます。 ユーザーを無効にする最も簡単な方法は、次のように、引数として無効にするユーザーとともに `+ pw lock +`コマンドを使用することです。

sudo pw lock

このコマンドは、「+ / etc / master.passwd +」ファイルのユーザーのエントリに「* LOCKED *」を追加することで機能します。

ユーザーは、アカウントのロックが解除されるまでログインできません。

ユーザーのロックを解除する方法

`+ pw lock `で無効にされたユーザーを有効にするには、 ` pw unlock +`コマンドを使用します:

sudo pw unlock

このコマンドは、「+ / etc / master.passwd +」ファイルのユーザーのエントリから「* LOCKED *」が存在する場合は削除することで機能します。

結論

これで、FreeBSDサーバーでの基本的なユーザー管理について十分に理解できたはずです。