ユーザーとグループの管理
ユーザーとグループの追加・削除・監査、sudoの設定、最小権限の原則の適用を行います。
「ユーザーとグループの管理」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
Linuxのユーザーモデル
LinuxはマルチユーザーOSです。すべてのプロセスは特定のユーザーとして実行されます。ユーザーとグループを理解することは、アクセス制御と権限分離の基本です。
/etc/passwdファイル
/etc/passwdには、ユーザー名、UID、GID、ホームディレクトリ、シェルなどのユーザーアカウント情報が保存されています。パスワードは(ハッシュとして)/etc/shadowに保存され、rootだけが読み取れます。
cat /etc/passwd
# format: username:x:UID:GID:comment:home:shellユーザーの作成と管理
主なコマンド:
useradd -m -s /bin/bash alice # create user with home dir
passwd alice # set password
usermod -aG sudo alice # add to sudo group
userdel -r alice # delete user and home dirグループとアクセス制御
グループを使うと、複数のユーザーでパーミッションを共有できます。1人のユーザーは複数の補助グループに所属できます。プライマリグループはユーザーの作成時に設定され、セカンダリグループによってファイルやデバイスへの追加アクセスが付与されます。
groupadd developers
usermod -aG developers bob
id bob # show UID, GID, groups/etc/shadowファイル
/etc/shadowには、ハッシュ化されたパスワードとパスワードの有効期限に関する情報が含まれています。読み取れるのはrootだけです。ハッシュ形式は$id$salt$hashで、idはアルゴリズムを示します(6=SHA-512、2y=bcrypt)。
sudo cat /etc/shadow
# $6$salt$hash = SHA-512最小権限の原則
各ユーザーとサービスは、必要最低限のパーミッションだけで実行する必要があります。絶対に必要な場合を除き、アプリケーションをrootとして実行しないでください。ログインシェルを持たず、ホームディレクトリへのアクセスが制限された専用のサービスアカウントを使用します。
sudoとsuの比較
sudoは、昇格された権限で単一のコマンドを実行し、その操作を記録します。suは、別のユーザー(通常はroot)に切り替え、セッション全体をそのユーザーとして実行します。監査しやすいsudoを優先してください。昇格されたすべてのコマンドが/var/log/auth.logに記録されます。
sudo apt update # single command as root
sudo -u postgres psql # run as specific service user
su - alice # switch to alice (full login)sudoersの設定
/etc/sudoersファイル(visudoで編集します)は、どのユーザーがどのコマンドをrootとして実行できるかを制御します。sudoを全面的に許可するのではなく、細かく権限を付与してください。例として、deployユーザーにはnginxの再起動だけを許可します。
visudo
# deploy ALL=(ALL) NOPASSWD: /bin/systemctl restart nginxアカウントのロックと有効期限設定
使用していないアカウントは削除せず、無効化してください(監査証跡を保持できます)。
passwd -l alice # lock account
usermod -e 2024-12-31 alice # set expiry date
chage -l alice # view password aging infoサービスアカウント
アプリケーションは、次の条件を満たす専用のサービスアカウントで実行してください。対話的なログインシェル(/usr/sbin/nologin)を持たないこと、ホームディレクトリへの書き込みアクセスがないこと、所属するグループを最小限にすることです。Webサーバーやデータベースをrootとして実行してはいけません。
ユーザーアクティビティの監査
ログを通じてユーザーの操作を監視します。
last # recent logins
lastb # failed login attempts
journalctl _UID=1000 # journal entries for UID 1000
grep sudo /var/log/auth.log # sudo usage確認問題: ユーザー管理
Linuxでハッシュ化されたパスワードが保存され、rootだけが読み取れるファイルはどれですか?
レッスンのまとめ
Linuxのユーザーとグループの管理では、UID、GID、グループ所属によってアクセスを制御します。useradd、usermod、groupaddを使用します。最小権限の原則に従い、ログインシェルを持たないサービスアカウントを使用してください。監査しやすいようにsuではなくsudoを使用します。不審なアクティビティがないか/var/log/auth.logを監視してください。
よくある質問
「ユーザーとグループの管理」レッスンは無料ですか?
はい。「ユーザーとグループの管理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「ユーザーとグループの管理」で何を学びますか?
ユーザーとグループの追加・削除・監査、sudoの設定、最小権限の原則の適用を行います。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ユーザーとグループの管理」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。