はじめに
Linux のユーザー管理は、システム管理者にとって基本的なスキルです。これには、ユーザーアカウントの作成、変更、および管理が含まれ、適切なシステムアクセスとセキュリティを確保します。この実験では、Linux 環境でのユーザー管理方法を学びます。特に、ユーザーの追加と権限の設定に焦点を当てます。これらのスキルは、すべての Linux システムのセキュリティと整合性を維持するために不可欠です。
新しいユーザーの作成
Linux のユーザーアカウントは、特定の権限でシステムにアクセスできるようにします。各ユーザーには、一意のユーザー名、ユーザーID (UID)、ホームディレクトリ、およびデフォルトのシェルがあります。
このステップでは、システム上に "cipher" という名前の新しいユーザーを作成します。
LabEx の仮想マシン (VM) 環境でターミナルを開きます。ターミナルはすでにデフォルトの場所
/home/labex/projectにあるはずです。適切なオプションを指定して
useraddコマンドを使用し、新しいユーザーを作成します。
sudo useradd -m -s /bin/bash cipher
このコマンドを理解しましょう。
sudo: これは、ユーザー管理に必要なスーパーユーザー権限でコマンドを実行します。useradd: これは、新しいユーザーを作成するためのコマンドです。-m: このオプションは、新しいユーザーのホームディレクトリを/home/cipherに作成します。-s /bin/bash: これは、ユーザーのデフォルトのシェルを bash に設定します。cipher: これは、作成する新しいユーザーのユーザー名です。
- ホームディレクトリを一覧表示することで、ユーザーが作成されたことを確認します。
ls -l /home
以下のような出力が表示されるはずです。
total 8
drwxr-xr-x 2 cipher cipher 4096 Oct 15 10:30 cipher
drwxr-xr-x 5 labex labex 4096 Oct 15 10:00 labex
cipher のエントリがあることで、ユーザーとそのホームディレクトリが正常に作成されたことが確認できます。
新しいユーザーのパスワードを設定する
すべてのユーザーアカウントには、不正アクセスを防ぐために安全なパスワードが必要です。このステップでは、前のステップで作成した「cipher」ユーザーのパスワードを設定します。
passwdコマンドを使用して、ユーザーのパスワードを設定します。
sudo passwd cipher
- 新しいパスワードを 2 回入力するように求められます。好きなパスワードを入力し、各入力後に Enter キーを押します。セキュリティ上の理由から、入力したパスワードは画面に表示されないことに注意してください。
New password:
Retype new password:
2 つのパスワードが一致すると、確認メッセージが表示されます。
passwd: password updated successfully
- シャドウファイルのパスワードフィールドが空でないことを確認することで、パスワードが設定されたことを検証します。
sudo grep cipher /etc/shadow | cut -d: -f2 | grep -v '!'
文字列が返された場合、パスワードが正常に設定されたことを意味します。出力には実際のパスワードではなく、その暗号化された形式が表示されます。
検証コマンドを詳しく理解しましょう。
grep cipher /etc/shadowは、ユーザーを含む行を検索します。cut -d: -f2は、パスワードフィールド(2 番目のフィールド)を抽出します。grep -v '!'は、'!' を含まない行のみを表示します。
最後の部分 (grep -v '!') は特に重要です。なぜなら、Linux では以下のようになっているからです。
- パスワードがないアカウントまたはロックされたアカウントのパスワードフィールドには '!' が含まれます。
- 有効なパスワードが設定されたアカウントのパスワードフィールドには、'!' を含まない暗号化されたハッシュが含まれます。
したがって、コマンドが出力を返す場合、実際のパスワードハッシュを公開することなく、有効なパスワードが設定されていることが確認できます。
ユーザー情報の表示
ユーザーを作成した後、そのユーザーに関する情報を表示する方法を知ることは重要です。Linux にはこの目的のためのいくつかのコマンドが用意されています。
- まず、
idコマンドを使用して "cipher" ユーザーの基本情報を確認しましょう。
id cipher
これにより、ユーザーID (uid)、グループ ID (gid)、およびユーザーが所属するグループが表示されます。出力は以下のようになります。
uid=1001(cipher) gid=1001(cipher) groups=1001(cipher)
- 次に、基本的なユーザー情報が含まれる
/etc/passwdファイル内のユーザーのエントリを確認しましょう。
grep cipher /etc/passwd
出力は、コロンで区切られたフィールドを含む 1 行になります。例えば:
cipher:x:1001:1001::/home/cipher:/bin/bash
これらのフィールドは以下を表します。
- ユーザー名:cipher
- パスワード:x (実際のパスワードは /etc/shadow に保存されています)
- ユーザーID: 1001
- グループ ID: 1001
- GECOS フィールド:(この場合は空で、多くの場合ユーザーのフルネームが含まれます)
- ホームディレクトリ:/home/cipher
- ログインシェル:/bin/bash
- より読みやすい形式でユーザー情報を表示するために、
fingerコマンドを使用することもできます。まず、finger パッケージをインストールします。
sudo apt-get update
sudo apt-get install -y finger
- 次に、finger を使用して cipher ユーザーに関する情報を表示します。
finger cipher
出力は、ログイン状態やホームディレクトリを含む、より人間が読みやすい形式で情報を表示します。
Login: cipher Name:
Directory: /home/cipher Shell: /bin/bash
Never logged in.
No mail.
No Plan.
ユーザーをグループに追加する
Linux では、グループを使用してユーザーを組織化し、ファイルやリソースへのアクセスを制御します。このステップでは、既存のグループにユーザーを追加する方法を学びます。
- まず、ユーザーを追加する "crypto" という新しいグループを作成しましょう。
sudo groupadd crypto
- 次に、
usermodコマンドを使用して "cipher" ユーザーを "crypto" グループに追加します。
sudo usermod -aG crypto cipher
このコマンドでは:
sudo:スーパーユーザー権限でコマンドを実行します。usermod:ユーザーアカウントを変更するコマンドです。-aG:ユーザーをグループに追加するオプションです(-a は追加、-G は補助グループ)。crypto:グループの名前です。cipher:ユーザー名です。
- ユーザーが所属するグループを確認することで、ユーザーがグループに追加されたことを検証します。
groups cipher
出力には "cipher" と "crypto" の両方のグループが含まれるはずです。
cipher : cipher crypto
/etc/groupファイル内のグループのエントリを確認することもできます。
grep crypto /etc/group
出力にはグループとそのメンバーが表示されるはずです。
crypto:x:1002:cipher
ユーザーに sudo アクセス権を付与する
管理タスクを行う場合、ユーザーはしばしば管理者権限が必要になります。sudo(superuser do)コマンドは、一般ユーザーが管理者権限でコマンドを実行できるようにします。このステップでは、ユーザーに sudo アクセス権を付与する方法を学びます。
- Ubuntu では、sudo アクセス権を持つユーザーは通常 "sudo" グループに追加されます。"cipher" ユーザーを sudo グループに追加しましょう。
sudo usermod -aG sudo cipher
- ユーザーが sudo グループに追加されたことを確認します。
groups cipher
出力には現在 "sudo" グループが含まれるはずです。
cipher : cipher crypto sudo
- "cipher" ユーザーに切り替えて、sudo でコマンドを実行してみることで、sudo アクセス権をテストしましょう。まず、cipher ユーザーに切り替えます。
sudo su - cipher
- 次に、sudo 権限が必要なコマンドを実行してみます。
sudo ls /root
cipher ユーザーに設定したパスワードを入力するように求められます。正しく入力すると、コマンドは正常に実行され、/root ディレクトリの内容が表示されます。
cipher ユーザーのセッションを終了して、labex ユーザーに戻ります。
exit
まとめ
この実験では、Linux におけるユーザー管理の基本概念を学びました。新しいユーザーを作成し、パスワードを設定し、ユーザー情報を表示し、ユーザーをグループに追加し、sudo アクセス権を付与することに成功しました。これらのスキルは、Linux システムのセキュリティを維持し、リソースへのアクセスを制御するためにシステム管理者にとって不可欠です。
ユーザー管理はシステム管理の重要な側面であり、ここで学んだコマンドと概念は、より高度なユーザーと権限管理タスクの基礎を形成します。これらの基本を習得することで、Linux システム管理の熟練者への道が開けます。



