DevToolBox無料
ブログ

Linuxファイルパーミッション解説:完全なchmod計算機ガイド

12分by DevToolBox

Linuxファイルパーミッションはシステムセキュリティの根幹です。Unix系システムのすべてのファイルとディレクトリには、誰が読み取り、書き込み、実行できるかを決定するメタデータがあります。Webアプリのデプロイ、サーバーの強化、デプロイスクリプトのデバッグなど、chmodコマンドファイルパーミッション番号の理解は必須です。この包括的なchmod計算機ガイドでは、基本概念から特殊ビットまですべてをカバーします。

インタラクティブなchmod計算機でパーミッションを即座に視覚化できます。

Chmod Calculator →

1. Linuxファイルパーミッションとは?

Linuxのすべてのファイルとディレクトリには3つのユーザーカテゴリがあります。所有者は通常ファイルの作成者です。グループはアクセス権を共有するユーザーの集合です。その他はシステム上の他のすべてのユーザーを指します。ls -lコマンドでパーミッション文字列を確認できます。

各カテゴリには3種類のアクセス権を付与できます。読み取り (r) はファイル内容の表示やディレクトリの一覧表示を許可します。書き込み (w) はファイルの変更やディレクトリ内のエントリの作成・削除を許可します。実行 (x) はプログラムとしての実行やディレクトリへの移動を許可します。

典型的な <code>ls -l</code> 出力の例:

-rwxr-xr--  1 alice  developers  4096 Feb 20 deploy.sh

 所有者: rwx (7) | グループ: r-x (5) | その他: r-- (4)
 パーミッション番号: 754

2. パーミッション番号の理解(8進数表記)

Linuxは各パーミッションセットを0から7の8進数で表します:読み取り = 4書き込み = 2実行 = 1755のような3桁の数字は3つのカテゴリすべてをエンコードします。

8進数リファレンステーブル:

8進数シンボル意味
0---No permission
1--xExecute only
2-w-Write only
3-wxWrite + Execute
4r--Read only
5r-xRead + Execute
6rw-Read + Write
7rwxRead + Write + Execute

完全なパーミッション番号を計算するには、各桁を個別に計算します。例:所有者 読み取り+書き込み (4+2=6)、グループ 読み取り (4)、その他 なし (0) で 640

3. chmodパーミッションリファレンステーブル

最もよく使われるchmodパーミッションの包括的なリファレンステーブルです。

8進数シンボル意味典型的な用途
777rwxrwxrwx全員にフルアクセス一時的なデバッグのみ;本番環境では絶対に使用しない
755rwxr-xr-x所有者フル;グループ/その他 読み取り+実行ディレクトリ、実行スクリプト、Webサーバーのドキュメントルート
750rwxr-x---所有者フル;グループ 読み取り+実行;その他 なし共有プロジェクトディレクトリ
700rwx------所有者のみフルアクセス~/.sshディレクトリ、プライベートスクリプト
666rw-rw-rw-全員に読み取り+書き込み;実行なしまれに使用;一時的な共有ファイル
644rw-r--r--所有者 読み取り+書き込み;グループ/その他 読み取りHTML、CSS、PHPファイル、設定ファイル
640rw-r-----所有者 読み取り+書き込み;グループ 読み取り;その他 なしログファイル、機密設定
600rw-------所有者のみ読み取り+書き込みSSH秘密鍵、.envファイル、データベース資格情報
400r--------所有者のみ読み取りSSL証明書、読み取り専用シークレット
775rwxrwxr-x所有者フル;グループフル;その他 読み取り+実行共有アップロードディレクトリ

4. chmodコマンドの使い方

chmodコマンドはファイルとディレクトリのパーミッションを変更します。数値(8進数)モードとシンボリックモードの2つをサポートしています。

数値モード

数値モードでは3桁または4桁の8進数を指定します:

chmod 755 script.sh          # rwxr-xr-x
chmod 644 config.json        # rw-r--r--
chmod 600 id_rsa             # rw-------
chmod 400 cert.pem           # r--------
chmod -R 755 /var/www/html   # Recursive on directory

シンボリックモード

シンボリックモードは chmod [ugoa][+-=][rwxXst] の構文を使用します:

  • 対象: u (所有者)、g (グループ)、o (その他)、a (全員)
  • 演算子: + (追加)、- (削除)、= (正確に設定)
  • パーミッション: r (読み取り)、w (書き込み)、x (実行)
chmod u+x script.sh          # Add execute for owner
chmod g-w file.txt           # Remove write from group
chmod o+r document.pdf       # Add read for others
chmod a+x run.sh             # Add execute for all
chmod u=rwx,go=rx dir/       # Owner=rwx, group+others=rx (755)
chmod go-rwx secret.key      # Remove all from group+others

再帰的chmod

chmod -Rで再帰的に変更します:

# Set directories to 755 and files to 644 (web server standard)
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

# Make all .sh files executable
find /opt/scripts -name "*.sh" -exec chmod 755 {} \;

chmod計算機を使って正確なコマンドを生成:

Chmod Calculator →

5. 開発者向け一般的なchmodパターン

ファイルタイプごとに適切なパーミッション設定が異なります。ここでは必須のchmodパターンを紹介します。

Webサーバーファイル

標準:ファイルは644ディレクトリは755

# Web server document root
chmod 755 /var/www/html
chmod 644 /var/www/html/index.html
chmod 644 /var/www/html/style.css
chmod 644 /var/www/html/.htaccess

# PHP / application files
chmod 644 /var/www/html/app/*.php
chmod 755 /var/www/html/app/storage

スクリプトと実行ファイル

共有スクリプトは755、プライベートは700

# Shared executable scripts
chmod 755 deploy.sh
chmod 755 /usr/local/bin/my-tool

# Private scripts (owner only)
chmod 700 backup-db.sh
chmod 700 cleanup.sh

SSH鍵と設定

SSHはパーミッションに非常に厳格です:

chmod 700 ~/.ssh                 # SSH directory
chmod 600 ~/.ssh/id_rsa          # Private key
chmod 600 ~/.ssh/id_ed25519      # Private key (Ed25519)
chmod 644 ~/.ssh/id_rsa.pub      # Public key
chmod 600 ~/.ssh/authorized_keys # Authorized keys
chmod 600 ~/.ssh/config          # SSH config file

環境ファイルとシークレット

APIキーを含むファイルは所有者のみアクセス:

chmod 600 .env                   # Environment variables
chmod 600 .env.production        # Production secrets
chmod 600 database.yml           # Database credentials
chmod 600 credentials.json       # API credentials
chmod 400 ssl-cert.pem           # SSL certificate (read-only)

アップロードディレクトリ

アップロードディレクトリにはグループ書き込み権限が必要:

chmod 775 /var/www/html/uploads
chmod 775 /var/www/html/tmp
chmod 775 /var/www/html/cache

# Ensure web server group owns the directory
# chown www-data:www-data /var/www/html/uploads

6. 特殊パーミッション:setuid、setgid、スティッキービット

標準の9ビットに加え、Linuxは実行動作を変更する3つの特殊ビットをサポートします。

setuid (SUID) -- 4000

プロセスはファイル所有者の権限で実行されます。例:/usr/bin/passwd

setgid (SGID) -- 2000

ディレクトリでは、新しいファイルが自動的にディレクトリのグループを継承します。

スティッキービット -- 1000

ファイル所有者またはrootのみが削除可能。例:/tmp (1777)。

特殊パーミッションの設定:

# SUID: run as file owner
chmod 4755 /usr/bin/passwd
chmod u+s /usr/bin/my-tool

# SGID: inherit group on directory
chmod 2755 /shared/project
chmod g+s /shared/project

# Sticky Bit: prevent deletion by others
chmod 1777 /tmp
chmod +t /shared/uploads

# Combine: SGID + standard permissions
chmod 2775 /team/shared-dir

# Find files with special permissions
find / -perm -4000 -type f 2>/dev/null  # Find SUID files
find / -perm -2000 -type f 2>/dev/null  # Find SGID files
find / -perm -1000 -type d 2>/dev/null  # Find sticky dirs

7. ファイルパーミッションのベストプラクティス

ファイルパーミッションは重要な防御層です。

最小権限の原則に従う。必要最小限のパーミッションのみ付与する。

本番環境でchmod 777は絶対に使わない。全ユーザーにフルアクセスを与えてしまう。

定期的にパーミッションを監査する。find / -perm -777 -type fを使用する。

world-readableの代わりにグループを使う。

再帰的chmodに注意する。パスを必ず確認する。

パーミッション要件を文書化する。

umaskで安全なデフォルト値を設定する。umask 027を設定する。

chmod計算機ツールで素早く正確なパーミッションを決定できます。

8. よくある質問

chmod 755の意味は?

chmod 755は所有者にフルアクセス(rwx = 7)、グループとその他に読み取りと実行のアクセス(r-x = 5)を設定します。実行スクリプトとディレクトリの標準パーミッションです。

chmod 755と644の違いは?

chmod 755 (rwxr-xr-x) は全カテゴリに実行を許可し、ディレクトリとスクリプト向けです。chmod 644 (rw-r--r--) は実行を除去し書き込みを所有者のみに制限、通常ファイル向けです。

Linuxでファイルパーミッションを確認する方法は?

ls -laコマンドで詳細情報を表示します。statコマンドでさらに詳しい情報を確認できます。

最も安全なファイルパーミッションは?

実用的には400(所有者読み取りのみ)または600(所有者読み書きのみ)が最も制限的です。

MacでChmodは使える?

はい。macOSはBSD Unixベースで、Linuxと同じ構文でchmodを完全サポートしています。

無料オンラインchmod計算機で正確な値を計算。

Chmod Calculator →
Apache設定にはhtaccessジェネレーターもご覧ください。強力なパスワードが必要ですか?パスワードジェネレーターをお試しください。
𝕏 Twitterin LinkedIn
この記事は役に立ちましたか?

最新情報を受け取る

毎週の開発ヒントと新ツール情報。

スパムなし。いつでも解除可能。

Try These Related Tools

🔐Chmod Calculator.ht.htaccess Generator🔑Password Generator

Related Articles

Linux ファイル権限解説:chmod 777, 755, 644 の意味

Linux ファイル権限、chmod コマンド、8進数表記を理解する。実例付き。

Linux chmod, chown, chgrp: ファイルパーミッション ガイド

Linuxファイルパーミッション完全ガイド:chmod数値・記号モード、chown、chgrp、特殊パーミッション(setuid、setgid、sticky bit)。

SSH Keygen: Ed25519 vs RSA ガイド

ssh-keygenでSSH鍵を生成する方法。Ed25519とRSAの比較、鍵サイズの理解、SSH鍵管理のベストプラクティス。