パーミッション(パーミッション)
ファイル/ディレクトリのアクセス権限。Linux/macOSは rwx 3桁(chmod 755等)、Windows 11はACLで詳細制御。SMB共有・Docker volumeマウント時の不整合がトラブル常連。
概要
パーミッションは、ファイルやディレクトリに対するアクセス権を定義する仕組みである。
Linux/macOS では 3 つのビット(r, w, x)で表現され、chmod 755 のように数字で設定される。
Windows 11 では ACL(Access Control List)を用いてユーザーやグループごとに詳細に制御できる。
SMB 共有や Docker のボリュームマウント時に、ホストとゲストのパーミッションが不整合になると、
ファイルの読み書きができない、権限エラーが頻発するといったトラブルが発生しやすい。
主な特徴・仕組み
- Linux/macOS の rwx
- 所有者(owner)、グループ(group)、その他(others)それぞれに対して
r(読み取り)w(書き込み)x(実行/検索)
- 例:
chmod 755 /usr/bin→ 所有者に rwx、グループとその他に r-x
- 所有者(owner)、グループ(group)、その他(others)それぞれに対して
- Windows の ACL
- ユーザー、グループ、サービスアカウントごとに
Read,Write,Execute,Delete,Full Controlなど
- 共有フォルダで「共有権限」と「セキュリティ権限」を別々に設定できる
- ユーザー、グループ、サービスアカウントごとに
- SMB 共有
- Windows の共有と Linux の Samba の間で、
force userやforce groupを設定し、- 実際のファイルシステム上の UID/GID と一致させる必要がある
- Windows の共有と Linux の Samba の間で、
- Docker ボリューム
- ホスト側のパーミッションをコンテナ内に反映させるために
:Zや:zオプション、--userオプションを活用
- ホスト側のパーミッションをコンテナ内に反映させるために
- 不整合の典型的原因
- ホスト OS とゲスト OS のユーザー ID の差異
- SMB 共有時の「所有者の強制」設定ミス
- Docker の
--user指定を忘れ、root で実行した結果
- 対策
chmodとchownを組み合わせて明示的に設定- SMB の
smb.confでforce userを統一 - Docker Compose で
user: "1000:1000"を明記
スペック/製品比較表
| 製品名 | CPU | GPU | メモリ | SSD | PSU | 主要パーミッション設定例 |
|---|---|---|---|---|---|---|
| Intel Core Ultra 9 285K | 5.7 GHz ブースト | - | 32 GB DDR5 | 2 TB NVMe | 600 W | chmod 750 /var/www |
| AMD Ryzen 9 7950X | 5.2 GHz ブースト | - | 64 GB DDR5 | 1 TB NVMe | 750 W | chown -R www-data:www-data /srv |
| Nvidia RTX 4090 | - | 24 GB GDDR6X | - | - | - | - |
| ASUS ROG Strix X670E | - | - | 64 GB DDR5 | 2 TB NVMe | 850 W | chmod 770 /opt/app |
| Samsung 990 Pro | - | - | - | 2 TB NVMe | - | chown -R user:user /mnt/data |
| G.Skill Trident Z5 | - | - | 32 GB DDR5 | - | - | chmod 644 /etc/passwd |
具体例・対応製品
- Linux デスクトップ
Ubuntu 24.04 LTS/home/username/.sshは700が推奨sudo chown -R username:username /home/username
- Windows 11 エンタープライズ
Microsoft 365で共有フォルダ/sharedを作成- 「共有権限」:
Read、セキュリティ権限:Full Controlを特定ユーザーに付与
- 「共有権限」:
- SMB 共有サーバ
Samba 4.17smb.confのforce user = nobodyで全ファイルをnobody所有- 共有フォルダ
/srv/samba/shareにchmod 775
- Docker コンテナ
docker run -d --name webapp -v /var/www:/var/www:Z -u 1000:1000 nginx- コンテナ内の
/var/wwwはホストの 1000:1000 に合わせる
- コンテナ内の
- NAS 製品
Synology DS920+DSM 7.1でパーミッションを「ユーザー権限」+「グループ権限」に分離- 共有フォルダ
/homeは750に設定
自作PCでの選び方・注意点
- CPU と OS の組み合わせ
- Intel Core Ultra 9 285K で Windows 11 を選ぶ場合、SATA 3.0 ではなく PCIe 5.0 NVMe を利用し、
すべてのデータ転送を高速化。
- Intel Core Ultra 9 285K で Windows 11 を選ぶ場合、SATA 3.0 ではなく PCIe 5.0 NVMe を利用し、
- メモリの容量と速度
- 32 GB DDR5-6000 なら
chmod 777での一時ファイル作成が高速化される。
- 32 GB DDR5-6000 なら
- ストレージの種類
- Samsung 990 Pro 2 TB NVMe は 3,440 × 1,440 の高解像度画像を扱う場合に
低レイテンシで読み書きが可能。
- Samsung 990 Pro 2 TB NVMe は 3,440 × 1,440 の高解像度画像を扱う場合に
- 電源ユニット
- 850 W 以上の PSU を選択し、
sudo poweroff時にパーミッション関連のスクリプトが
正常に終了するように余裕を持たせる。
- 850 W 以上の PSU を選択し、
- ファイルシステムの選択
- Linux なら ext4 で
aclを有効化。Windows なら NTFS で「詳細オプション」
の「オフライン属性」を無効化。
- Linux なら ext4 で
- SMB 共有設定
smb.confのmap to guest = bad userを有効にし、
認証失敗時にゲスト権限でアクセスできるように設定。
- Docker のユーザー設定
docker-compose.ymlでuser: "1000:1000"を明示。
- ログと監査
auditdを有効化し、/var/log/auditでchmodやchownの変更を追跡。
- バックアップ
rsnapshotで/homeを毎日バックアップし、パーミッションを-pオプションで保持。
- セキュリティパッチ
apt update && apt upgrade -yを定期実行し、パーミッション関連の脆弱性を修正。
関連用語との違い
- ACL
- パーミッションは 3 つのビットで表す一方、ACL は複数のエントリで細かく権限を設定。
- UID/GID
- パーミッションは所有者の ID とグループ ID に基づくが、UID/GID 自体はユーザー管理の概念。
- Samba
- SMB 共有プロトコルで、Linux のパーミッションを Windows 共有にマッピング。
- Docker Volume
- ホストとコンテナ間でファイルを共有する際、パーミッションをそのまま渡すか、
:Zオプションで SELinux ラベルを付与。
- ホストとコンテナ間でファイルを共有する際、パーミッションをそのまま渡すか、
よくある質問(FAQ)
Q1: 2025年にリリースされた Ubuntu 24.04 LTS で、chmod 777 を使うとセキュリティ上問題があるのでしょうか?
A1: 777 は全員に読み書き実行権を与えるため、機密データが外部に漏れるリスクが高い。
代わりに chmod 750 と chown でユーザーとグループに限定するのが推奨。
Q2: Windows 11 の ACL で「Full Control」を付与した場合、SMB 共有時に Linux で chmod 777 になることがありますか?
A2: 可能性は低いが、Samba の force user 設定が無いと Linux 側で UID/GID が一致せず、
共有フォルダのパーミッションが 777 になるケースが報告されている。
Q3: Docker のボリュームマウントで :Z を付けずに起動すると、コンテナ内でファイルが書けないことがあります。
A3: これは SELinux が有効な環境で起きる典型的な問題。-Z は SELinux ラベルを再設定し、
コンテナがホスト上のファイルを書き込めるようにする。
Q4: 2026年に登場する次世代の NVMe SSD で、パーミッションに関する新機能はありますか?
A4: 主要メーカーは「ファイルシステムレベルの暗号化」機能を拡張し、
パーミッション情報を暗号化して格納する試みを進めている。
まとめ
パーミッションはファイルシステムの安全性を保つ基盤であり、
Linux の chmod と Windows の ACL、SMB 共有、Docker ボリュームといった多様な環境で
一貫した設定が求められる。
最新のハードウェア(Intel Core Ultra 9 285K、RTX 4090、Samsung 990 Pro など)を活用した自作PCでは、
パーミッションを正しく設定し、SMB や Docker での不整合を防ぐことで、
安定かつ安全なシステム運用が可能になる。
次世代のハードウェアやオペレーティングシステムが登場するたびに、
パーミッションの設定方法を見直し、最新のベストプラクティスを取り入れることが重要です。