Linuxにおけるユーザーとグループの管理

Linuxシステムでは、ファイルやプロセスへのアクセス権限を管理するために、ユーザーとグループの概念が用いられます。

ユーザーアカウント情報

ユーザーアカウントに関する情報は、主に /etc/passwd ファイルに保存されています。このファイルは、システム上のすべてのユーザーアカウントの基本情報を含んでおり、各行が1つのユーザーに対応しています。

/etc/passwd の各行は、コロン : で区切られた7つのフィールドで構成されています。

[ユーザー名]:[パスワード]:[ユーザーID (UID)]:[グループID (GID)]:[コメント]:[ホームディレクトリ]:[ログインシェル]
  • パスワード: セキュリティ上の理由から、実際のパスワードハッシュはここに直接保存されません。代わりに x が表示され、パスワードハッシュは /etc/shadow ファイルに保存されます。この /etc/shadow ファイルは、rootユーザーのみが読み取り専用でアクセスできます。

ユーザー情報の編集コマンド

  • useradd: 新しいユーザーアカウントを追加します。
    sudo useradd -m -s /bin/bash newuser # ホームディレクトリを作成し、bashをシェルに設定
    sudo passwd newuser # パスワードを設定
    
  • usermod: 既存のユーザーアカウントの情報を変更します。
    sudo usermod -aG sudo newuser # newuserをsudoグループに追加
    sudo usermod -l new_name old_name # ユーザー名を変更
    
  • userdel: ユーザーアカウントを削除します。
    sudo userdel -r olduser # ホームディレクトリを含めて削除
    
  • passwd: ユーザーのパスワードを変更します。
    passwd # 自分のパスワードを変更
    sudo passwd username # 他のユーザーのパスワードを変更 (root権限が必要)
    

グループアカウント情報

グループアカウントに関する情報は、主に /etc/group ファイルに保存されています。このファイルは、システム上のすべてのグループの基本情報を含んでおり、各行が1つのグループに対応しています。

/etc/group の各行は、コロン : で区切られた4つのフィールドで構成されています。

[グループ名]:[パスワード]:[グループID (GID)]:[メンバー]
  • パスワード: グループパスワードはほとんど使用されません。通常は x が表示されます。
  • メンバー: そのグループに所属するユーザー名のリスト(カンマ区切り)。

グループ情報の編集コマンド

  • groupadd: 新しいグループを追加します。
    sudo groupadd newgroup
    
  • groupmod: 既存のグループの情報を変更します。
    sudo groupmod -n new_group_name old_group_name # グループ名を変更
    
  • groupdel: グループを削除します。
    sudo groupdel oldgroup
    
  • id: 現在のユーザーが所属しているグループを確認します。
    id
    # 例: uid=1000(username) gid=1000(username) groups=1000(username),4(adm),27(sudo)
    

これらのコマンドを理解し、適切に利用することで、Linuxシステムにおけるユーザーとグループの管理を効果的に行うことができます。