Linux入門

Linuxのユーザーとグループの仕組みを理解する

Linux入門
記事内に広告が含まれています。

Linuxはマルチユーザー対応のOSです。複数人でサーバーを管理する場合や、アプリごとに専用ユーザーを作る場合など、ユーザー管理は実務で必ず使うスキルです。

ユーザー情報はどこに保存される?

Linuxユーザー情報管理ファイル /etc/passwd /etc/shadow /etc/group
▲ /etc/passwd にユーザー一覧、/etc/shadow にパスワードハッシュ(一般ユーザーは読めない)、/etc/group にグループ情報が保存される
# ユーザー情報を確認
$ cat /etc/passwd | grep username
# 例:username:x:1001:1001::/home/username:/bin/bash
# フィールド: ユーザー名:x:UID:GID:GECOS:ホームDir:シェル

# 自分のUID・GID・グループを確認
$ id
# uid=1000(user) gid=1000(user) groups=1000(user),27(sudo)

# 現在ログイン中のユーザー一覧
$ who
$ w

ユーザーの作成

Debian/Ubuntu系では adduser(対話式の高レベルコマンド)と useradd(低レベルコマンド)の2種類があります。通常は adduser が使いやすくおすすめです。

# adduser:対話形式でユーザー作成(推奨)
# ホームディレクトリ・パスワード設定まで自動で行う
$ sudo adduser alice

# useradd:オプションで詳細指定(スクリプト向き)
# -m でホームDirを作成、-s でログインシェルを指定
$ sudo useradd -m -s /bin/bash alice

# useradd 後はパスワードを別途設定する必要がある
$ sudo passwd alice

ユーザーの変更・グループへの追加

usermod でユーザーの設定を変更できます。グループへの追加では -a(append)オプションが必須です。-a なしで -G を使うと既存の所属グループがすべて上書きされてしまいます。

# sudoグループに追加(-a は必須!忘れると既存グループが消える)
$ sudo usermod -aG sudo alice

# 複数グループに同時追加
$ sudo usermod -aG sudo,www-data alice

# ログインシェルを変更
$ sudo usermod -s /bin/bash alice

# ユーザー名を変更
$ sudo usermod -l newname oldname

# ホームディレクトリを変更(-m で実際に移動も行う)
$ sudo usermod -d /new/home -m alice

ユーザーの削除

# ユーザーを削除(ホームディレクトリは残る)
$ sudo userdel alice

# ユーザーとホームディレクトリを完全削除(-r = remove home)
$ sudo userdel -r alice

# adduser で作成したユーザーは deluser で削除
$ sudo deluser alice
$ sudo deluser --remove-home alice   # ホームDirも削除

グループの管理

# グループを作成
$ sudo groupadd developers

# グループにユーザーを追加
$ sudo usermod -aG developers alice

# グループのメンバーを確認
$ getent group developers

# グループを削除
$ sudo groupdel developers

# 自分の所属グループを確認
$ groups

コマンド早見表

ユーザー・グループ管理コマンド早見表
▲ usermod -aG の -a(append)は必須。adduser が対話式で使いやすく初心者におすすめ

sudo権限を持つユーザーの確認

# sudoグループのメンバーを確認
$ getent group sudo

# または
$ cat /etc/group | grep sudo

# 特定ユーザーのsudo権限を確認
$ sudo -l -U alice

まとめ

  • ユーザー情報は /etc/passwd(アカウント情報)・/etc/shadow(パスワード)・/etc/group(グループ)で管理
  • Ubuntu/Debian系では adduser(対話式・推奨)と useradd(低レベル)の2種類がある
  • usermod -aG グループ名 ユーザー名-a は必須! 忘れると既存グループが消える
  • userdel -r でホームディレクトリごと削除(データが消えるので慎重に)
  • id ユーザー名 でUID・GID・所属グループを確認

関連記事

📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。

コメント

タイトルとURLをコピーしました