Version: 1.0
Author: Daya Mukherjee
Last Edited: 2014-06-04
目次
- 概要
- 導入
- ユーザーを追加する方法
- ユーザーを削除する方法
- 実運用チェックリスト
- セキュリティ強化とプライバシー考慮
- トラブルシューティング: よくある失敗と対処法
- 役割別チェックリスト
- ミニプレイブック: 追加と削除の手順
- 受け入れ基準
- 用語集
- まとめ
概要
Ubuntuはデスクトップからサーバーまで広く使われるLinuxディストリビューションです。ユーザーアカウント管理は基本的かつ重要な運用作業です。rootアカウントだけで運用するとリスクが高いため、通常は権限を限定したユーザーを作成して日常作業を行わせます。
導入
新しいサーバー作成時には最初にrootが与えられることが多いです。rootは権限が強力なため、誤操作や悪用のリスクがあります。そこで一般ユーザーを追加し、必要に応じて sudo グループに追加する運用が推奨されます。
定義: Sudo 権限 — 管理者権限を一時的に借りてコマンドを実行できる仕組み。
ユーザーを追加する方法
基本コマンド(Debian系の標準):
adduser newuser
root として実行するか、Sudo 権限を使う場合は:
sudo adduser newuser
このコマンドは対話形式でパスワードやフルネーム等の情報を聞きます。2行目で入力をスキップするには Enter を押します。
useradd を使う場合(より低レベル、スクリプト向け):
sudo useradd -m -s /bin/bash -G sudo newuser
sudo passwd newuser
- -m: ホームディレクトリを作成する。
- -s /bin/bash: デフォルトシェルを指定。
- -G sudo: sudo グループへ追加。
パスワード変更を初回ログインで強制するには:
sudo chage -d 0 newuser
注意点: adduser は useradd より対話式で使いやすく、Debian/Ubuntu では推奨されます。useradd はオプションを細かく指定できるため自動化やスクリプトに向きます。
追加の操作例
- システム用の UID 範囲やグループ割り当てを指定する。
- SSH 公開鍵を直接配置する場合は /home/newuser/.ssh/authorized_keys に書き込む。パーミッションは 700 (/home/newuser/.ssh) と 600 (/home/newuser/.ssh/authorized_keys) にする。
sudo mkdir -p /home/newuser/.ssh
sudo chmod 700 /home/newuser/.ssh
sudo tee /home/newuser/.ssh/authorized_keys <<'KEY'
ssh-rsa AAAA... user@example
KEY
sudo chmod 600 /home/newuser/.ssh/authorized_keys
sudo chown -R newuser:newuser /home/newuser/.ssh
ユーザーを削除する方法
ユーザーを削除する基本コマンド:
deluser newuser
Sudo 権限で実行する場合:
sudo deluser newuser
ホームディレクトリまで含めて完全に削除する場合:
deluser --remove-home newuser
または低レベルの userdel:
sudo userdel -r newuser
- -r: ホームディレクトリとメールスプールを削除します。
削除前の推奨作業:
- ホームディレクトリをアーカイブして保管する:
sudo tar czf /root/archives/newuser-home-$(date +%F).tar.gz /home/newuser
- crontab や残るプロセス、システムの記録を確認する:
sudo crontab -u newuser -l
ps -u newuser
sudo 権限の解除:
- もし sudo 権限を /etc/sudoers に直接書いている場合は visudo で編集して該当行を削除します。
sudo visudo
# 例: 以下の行を削除
# newuser ALL=(ALL:ALL) ALL
- Debian系では sudo グループから外すことで多くの場合対応可能:
sudo deluser newuser sudo
実運用チェックリスト
重要: 本番環境でアカウントを削除する前に必ずバックアップと承認を得てください。
追加時チェック:
- ホームディレクトリが作成されたか(id, getent で確認)
- 期待するグループに追加されたか(id newuser)
- SSH キーとパーミッションが正しいか
- 初回ログイン時パスワード変更が必要なら設定したか
削除時チェック:
- ホームをアーカイブしたか
- crontab, systemd ユニット, 実行中プロセスを停止したか
- sudoers から該当行を削除したか
- ログやファイル所有権の残存を確認したか
セキュリティ強化とプライバシー考慮
- root ログインを無効化: /etc/ssh/sshd_config の PermitRootLogin no を設定し sshd を再起動。
- パスワード認証を無効化して公開鍵認証に限定する場合は PasswordAuthentication no を設定。
- アカウントを一時停止する場合はロックする:
sudo usermod -L username
sudo passwd -l username
- アカウントの有効期限を設定して自動的に無効にする:
sudo chage -E 2025-12-31 username
プライバシーとコンプライアンス:
- ユーザー削除前に個人データの保存要否を確認する(GDPRや社内ポリシー)。
- ログやメールスプールに個人データが残る可能性があるため、必要に応じてエクスポートや安全な削除を行う。
トラブルシューティング: よくある失敗と対処法
失敗: 新ユーザーでログインできない
- 対処: ホームディレクトリの所有権を確認。sudo chown -R newuser:newuser /home/newuser
失敗: sudo が効かない
- 対処: id newuser で sudo グループに入っているか確認。必要なら sudo usermod -aG sudo newuser。
失敗: 削除後に同名ユーザーが別 UID で作成され問題が起きる
- 対処: /etc/passwd と /etc/group に残るエントリを確認し、不要な行を visudo や直接編集で削除する前にバックアップを取る。
役割別チェックリスト
システム管理者向け
- ユーザー作成ポリシーを文書化。
- 権限レビューを定期実施。
- 削除前に監査ログとデータ保存ポリシーを確認。
ヘルプデスク向け
- 新規ユーザーのテンプレート(グループ、シェル、ホームクォータ)を用意。
- パスワードリセット手順を標準化。
開発チーム向け
- サービスアカウントと人間ユーザーを厳密に分離。
- CI/CD用ユーザーは鍵ベースでアクセス、ログの追跡を有効にする。
ミニプレイブック: 追加手順(短縮)
- バックグラウンド情報収集: 必要なグループ、シェル、ホームパスを決定する。
- 実行:
sudo adduser newuser
sudo usermod -aG sudo newuser # 必要なら
- SSH鍵設置、パーミッション確認。
- 初回ログイン確認と sudo -l で権限確認。
ミニプレイブック: 削除手順(短縮)
- 承認を取得し、バックアップを作成。
- crontab とプロセスを停止。
- sudo 権限とグループを解除:
sudo deluser newuser sudo
- ホームをアーカイブしてから削除:
sudo tar czf /root/archives/newuser-home-$(date +%F).tar.gz /home/newuser
sudo deluser --remove-home newuser
- ログと /etc/passwd を確認。
受け入れ基準
- ユーザー作成: id newuser でUIDとGIDが確認できること。
- ログイン確認: SSH またはローカルでログイン可能であること。
- 権限確認: sudo が必要なら sudo -l で期待する権限が表示されること。
- 削除確認: /etc/passwd にユーザーエントリが残っていないこと。ホームが削除対象なら /home/newuser が存在しないこと。
用語集(1行定義)
- adduser: Debian系で対話的にユーザーを作成するユーティリティ。
- useradd: より低レベルでオプション制御が細かいユーザー作成コマンド。
- deluser / userdel: ユーザーを削除するコマンド。
- sudo: 一時的に管理者権限を得るための仕組み。
まとめ
Ubuntuでのユーザー追加と削除は、基本的なコマンドを知っていれば簡単に行えます。ただし、データ保護、権限の管理、ログの整合性を考慮することが重要です。常にバックアップと承認のプロセスを守り、運用ポリシーを文書化してください。
重要: 本記事は手順とベストプラクティスを示すものであり、実行前にあなたの組織のポリシーに従ってください。
参考コマンドまとめ
# ユーザー追加(対話式)
sudo adduser newuser
# ユーザー追加(非対話式、ホーム作成、bash、sudoグループ)
sudo useradd -m -s /bin/bash -G sudo newuser
sudo passwd newuser
# 初回ログインでパスワード変更を強制
sudo chage -d 0 newuser
# ユーザー削除(ホームは残す)
sudo deluser newuser
# ユーザー削除(ホームも削除)
sudo deluser --remove-home newuser
# または
sudo userdel -r newuser
# sudoグループから削除
sudo deluser newuser sudo
# SSH鍵の設置(例)
sudo mkdir -p /home/newuser/.ssh
sudo chmod 700 /home/newuser/.ssh
sudo tee /home/newuser/.ssh/authorized_keys <<'KEY'
ssh-rsa AAAA... user@example
KEY
sudo chmod 600 /home/newuser/.ssh/authorized_keys
sudo chown -R newuser:newuser /home/newuser/.ssh
# ホームをアーカイブ
sudo tar czf /root/archives/newuser-home-$(date +%F).tar.gz /home/newuser