コース一覧
OS入門:プロセス・メモリ・ファイルシステム
パーミッションと所有者

OS入門:プロセス・メモリ・ファイルシステム

OSがCPU・メモリ・ストレージをどのように管理しているかを、プロセス、スレッド、仮想メモリ、ファイルシステム、同期と並行性から体系的に学びます。アプリケーションの裏側で何が起きているかを説明できるようになります。

1
OS とは
0. コンピューターとOSの役割15分
1. OSの歴史(バッチ→マルチタスク→マルチユーザー)15分
2. カーネルとユーザーランド15分
3. システムコールの仕組み15分
4. Linux / macOS / Windows のアーキ比較15分
2
プロセスとスレッド
0. プロセスとは15分
1. スレッドとプロセスの違い15分
2. コンテキストスイッチ15分
3. スケジューラとアルゴリズム15分
4. プロセス間通信(IPC)15分
3
メモリ管理
0. メモリ階層(レジスタ→キャッシュ→RAM→ディスク)15分
1. 仮想メモリ15分
2. ページングとスワップ15分
3. mmap とメモリマップトファイル15分
4. ガベージコレクション概要15分
4
ファイルシステム
0. ファイルシステムとは15分
1. i-node とディレクトリ15分
2. ext4 / APFS / NTFS の違い15分
3. ジャーナリングと耐障害性15分
4. パーミッションと所有者15分
5
同期と並行性
0. レースコンディション15分
1. Mutex と Semaphore15分
2. デッドロック15分
3. 非同期と並行15分
4. イベントループと epoll15分

OS入門:プロセス・メモリ・ファイルシステム

01コンピューターとOSの役割
02OSの歴史(バッチ→マルチタスク→マルチユーザー)
03カーネルとユーザーランド
04システムコールの仕組み
05Linux / macOS / Windows のアーキ比較
06プロセスとは
07スレッドとプロセスの違い
08コンテキストスイッチ
09スケジューラとアルゴリズム
10プロセス間通信(IPC)
11メモリ階層(レジスタ→キャッシュ→RAM→ディスク)
12仮想メモリ
13ページングとスワップ
14mmap とメモリマップトファイル
15ガベージコレクション概要
16ファイルシステムとは
17i-node とディレクトリ
18ext4 / APFS / NTFS の違い
19ジャーナリングと耐障害性
20パーミッションと所有者
21レースコンディション
22Mutex と Semaphore
23デッドロック
24非同期と並行
25イベントループと epoll

OS入門:プロセス・メモリ・ファイルシステム

パーミッションと所有者

chmod 777 で動いた、で終わらせる前に

アップロードした画像が表示されない。検索して出てきた chmod -R 777 を打つと表示された。ここで解決にしてしまうと、そのディレクトリは「サーバーに入り込めた者なら誰でも、中のファイルを書き換えられる」状態になります。PHP や CGI が置かれていれば、書き換えた中身をそのまま実行させられます。

777 が何を許したのかを読めるようになれば、必要な分だけ開けられます。

3 種類の相手に、3 種類の許可

ls -l の左端は 10 文字です。先頭の 1 文字は種類(- がファイル、d がディレクトリ)で、残りの 9 文字が 3 文字ずつ 3 組に分かれています。

プレーンテキスト

-rw-r--r--  1 alice users  240 Aug 20 11:00 memo.txt
 ^^^        所有者 alice に許すこと
    ^^^     所有グループ users のメンバーに許すこと
       ^^^  それ以外の全員に許すこと

各組は読み・書き・実行の順で、許すなら r w x、許さないなら - が入ります。OS はアクセスのたびに、要求してきた相手が所有者か、グループのメンバーか、それ以外かを判定し、当てはまる 3 文字だけを見ます。

数字表記は、この 3 文字を 2 進数と見なして 8 進数 1 桁に潰したものです。rw- は 110 で 6、r-- は 100 で 4、rwx は 111 で 7。だから上の状態は 644 で、chmod 777 は 3 種類の相手すべてに rwx を与えたことになります。

ターミナル

chmod 644 memo.txt     # 所有者だけ書ける。読むのは全員
chmod 600 id_rsa       # 所有者だけ読み書き。秘密鍵はこれ以外にしない
chmod 755 deploy.sh    # 所有者だけ書ける。実行は全員

SSH の秘密鍵が 644 だと、ssh は接続そのものを拒否します。他人に読める場所に鍵を置いている、という理由です。

ディレクトリの x は実行ではない

同じ 3 文字でも、ディレクトリでは意味がずれます。r は中の名前の一覧が取れること、w は中にファイルを作ったり消したりできること、そして x は そのディレクトリを通り抜けられること です。ディレクトリを実行する場面はありません。

ここが噛み合わないと、不思議な症状が出ます。r だけあって x が無いと、ls はできるのに cd も、中のファイルを開くこともできません。逆に x だけあって r が無いと、一覧は取れないのに、名前を正確に知っていればそのファイルは開けます。

もう 1 つ、ファイルを消せるかどうかを決めるのは、そのファイル自身の権限ではなく 親ディレクトリの w です。読み取り専用のファイルでも、親ディレクトリに書き込めるなら消せます。/tmp が誰でも書けるのに他人のファイルは消せないのは、この既定を打ち消す sticky bit が付いているからです。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • ディレクトリファイルを整理するフォルダのこと。
  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • ループ繰り返し処理。矢印で戻すか専用記号で示す
  • 秘密鍵ローカルだけに置く認証鍵
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/27·更新 2026/08/26

関連レッスン

  • レースコンディション

    複数スレッドが同じ資源を同時に変更し実行順で結果が変わるレースコンディションの正体と、アトミック操作やロックで防ぐ具体策を実務目線で解説します。

  • ジャーナリングと耐障害性

    操作を書き込みログに先に記録するジャーナリングで電源断やクラッシュからデータを守る仕組みと、コピーオンライト方式との違いまで分かりやすく整理します。

  • ext4 / APFS / NTFS の違い

    ext4 / APFS / NTFS の違い

  • i-node とディレクトリ

    ファイルのメタデータを束ねる i-node と、名前と番号を対応づけるディレクトリの関係、ハードリンクとシンボリックリンクの違いまで実務目線で整理します。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。