Linuxコマンド一覧

chmodコマンド|ファイルの権限を変える

__ __ _ _____
\ \ / /__| |_|_ _|__ _ __ _ __ ___
\ \ /\ / / _ \ '_ \| |/ _ \ '__| '_ ` _ \
\ V V / __/ |_) | | __/ | | | | | |
\_/\_/ \___|_.__/|_|\___|_| |_| |_| |_
 
chmod を試すためのサンドボックスです。実機のファイルには影響しません。
user@webterm:~/project$
 

chmod はファイルの読み書き実行の権限を変えるコマンドです。rwx の読み方、755 や 644 といった数字の意味、+x の書き方を、ブラウザ上のターミナルで打ちながら確認できます。

最終更新: 2026-09-05

書式

chmod [オプション] モード ファイル...

モードには、755 のような数字か、+x のような記号を書きます。

まず打ってみる

まず、いまの権限を ls -l で見ます。

$ ls -l
total 16
-rw-r--r--   1  user  user     27  Sep  5 15:00  deploy.sh
-rw-r--r--   1  user  user     10  Sep  5 15:00  README.md
drwxr-xr-x   2  user  user   4096  Sep  5 15:00  scripts/
-rw-r--r--   1  user  user     14  Sep  5 15:00  secret.env

左端の10文字が権限です。

位置意味
1文字目種類(- はファイル、d はディレクトリ)
2〜4文字目所有者にできること
5〜7文字目グループにできること
8〜10文字目その他の人にできること

r が読み、w が書き、x が実行です。 deploy.sh-rw-r--r-- なので、まだ実行できません。

実行できるようにする

+x で実行の権限を足します。

$ chmod +x deploy.sh
$ ls -l deploy.sh
-rwxr-xr-x   1  user  user     27  Sep  5 15:00  deploy.sh

x が3か所に増えました。 記号で書くと、いまの権限に足す・引くという指定になります。

数字で指定する

数字は、読み 4・書き 2・実行 1 の合計です。

数字できること
7読み・書き・実行(4+2+1)
6読み・書き(4+2)
5読み・実行(4+1)
4読みだけ
0何もできない

3桁を並べて、所有者・グループ・その他の順に指定します。 自分だけが読み書きできる状態にするなら 600 です。

$ chmod 600 secret.env
$ ls -l secret.env
-rw-------   1  user  user     14  Sep  5 15:00  secret.env

よく使う組み合わせは2つだけ覚えれば足ります。

$ chmod 644 README.md
$ ls -l
total 16
-rwxr-xr-x   1  user  user     27  Sep  5 15:00  deploy.sh
-rw-r--r--   1  user  user     10  Sep  5 15:00  README.md
drwxr-xr-x   2  user  user   4096  Sep  5 15:00  scripts/
-rw-------   1  user  user     14  Sep  5 15:00  secret.env

644 は普通のファイル、755 は実行するファイルとディレクトリです。

ディレクトリごと変える

-R を付けると、中のファイルまでまとめて変わります。

$ chmod -R 755 scripts
$ ls -l scripts
total 4
-rwxr-xr-x   1  user  user     24  Sep  5 15:00  backup.sh

実務での使いどころ

chmod は、動かない原因が権限だったときに打つコマンドです。

場面打ち方
スクリプトを実行できるようにするchmod +x deploy.sh
秘密の情報を自分だけに見せるchmod 600 .env
普通のファイルに戻すchmod 644 notes.txt
配布したスクリプトをまとめて直すchmod -R 755 scripts

つまずきやすいところ

数字は置き換え、記号は足し引きです。 chmod 755 はいまの権限を無視して上書きします。 chmod +x はいまの権限に実行だけを足します。 既にある設定を残したいときは記号のほうが安全です。

777 で解決してはいけません。 誰でも書き換えられる状態になります。 切り分けのために一時的に使うことはあっても、そのまま放置しないでください。

ファイルが無いとエラーになります。

$ chmod 777 nope.txt
chmod: cannot access 'nope.txt': No such file or directory

権限が足りないのではなく、所有者が違うこともあります。 その場合に必要なのは chmod ではなく chown です。 まず ls -l で、誰のファイルなのかを確かめてください。

手を動かして覚える

webterm.appこのサイト

learn.webterm.app別のサイト

>_WEBTERM LEARN

WebTerm Learn|1つのコマンドから、使える状態へ

コマンドは単体で覚えるより、実際の作業の流れの中で使うほうが身につきます。順番に積み上げていくコースがあります。

コースを見る

関連するコマンド

ls / chown / stat

よくある質問

755 や 644 の数字は何を表していますか?
3桁がそれぞれ所有者・グループ・その他を表し、読み4・書き2・実行1を足した数です。755 は所有者が読み書き実行、他は読みと実行という意味になります。
chmod +x は何をしていますか?
実行の権限を足しています。数字が全体を置き換えるのに対し、+x はいまの権限に足すだけなので、他の権限はそのまま残ります。
Permission denied と出たときは chmod を使えばいいですか?
まず ls -l で権限を見てください。権限が足りないなら chmod ですが、所有者が違うことが原因なら chown が必要です。安易に 777 にするのは危険です。
777 にしてはいけないのはなぜですか?
誰でも書き換えられる状態になるからです。動かない原因が権限かどうかを切り分けるためだけに使い、そのまま放置しないでください。
ディレクトリの x は何を意味しますか?
中に入れるかどうかです。ディレクトリは r があれば中身の一覧が見え、x があれば中のファイルにたどり着けます。