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システムにおけるユーザーとグループの管理を効果的に行うことができます。