chmod

chmod (change mode) はファイルとディレクトリの読み書きと実行のパーミッション(許可)を変更するLinux/Unixコマンドです。

概要

chmod [opion]... mode[,mode] file
chmod [opion]... octal-mode file

引数

mode
ファイルのパーミッションを指定する。
[u|g|o][+|-|=][s|t|r|w|x]

1文字目は対象を表す。

対象
文字 説明
u 所有者
g グループ
o その他

2文字目は演算子を表す。

演算子
文字 説明
+ オンにする
- オフにする
= 指定した権限にする

3文字目は権限を表す。

権限
文字 説明
s seduid/setgid
t sticky
r 読み込み
w 書き込み
x 実行

ファイル所有者の read 権限を追加する。

$ chmod u+r example

ファイル所有者の read 権限を削除する。

$ chmod u-r example

ファイル所有者の write 権限を追加する。

$ chmod u+w example

ファイル所有者の write 権限を削除する。

$ chmod u-w example

ファイル所有者の execute 権限を追加する。

$ chmod u+x example

ファイル所有者の execute 権限を削除する。

$ chmod u-x example

ファイル所有者以外の read 権限を追加する。

$ chmod o+r example

ファイル所有者以外の read 権限を削除する。

$ chmod o-r example

ファイル所有者以外の write 権限を追加する。

$ chmod o+w example

ファイル所有者以外の write 権限を削除する。

$ chmod o-w example

ファイル所有者以外の execute 権限を追加する。

$ chmod o+x example

ファイル所有者以外の execute 権限を削除する。

$ chmod o-x example
octal-mode
ファイルのパーミッションを8進数で指定する。
アカウント user group other
モード r w x r w x r w x
2進数 1 1 1 1 0 1 1 0 1
8進数 7 5 5
$ chmod 0755 bin

オプション

コマンドに指定できるオプションには、POSIX と GNU の2種類の形式がある。

POSIX の場合、オプションはハイフンで始まり、アルファベット1文字で指定する。

$ chmod -v 0755 bin

GNU 形式の場合、オプションはハイフン2つから始まり、複数のアルファベットで指定する。

$ chmod --verbose 0755 bin

以下に示すオプションを chmod コマンドに指定することができる。

-c
変更があったファイル毎に診断結果を出力する。処理対象であっても、変更が無かったファイルの診断結果は出力しない。 (POSIX)
--changes
変更があったファイル毎に診断結果を出力する。処理対象であっても、変更が無かったファイルの診断結果は出力しない。 (GNU)
-v
処理対象のファイル毎に診断結果を出力する。 (POSIX)
--verbose
処理対象のファイル毎に診断結果を出力する。 (GNU)
-R
ファイルとディレクトリを再帰的に変更する。引数に指定したディレクトリに含まれるファイルとサブディレクトリも変更される。ただし、サブディレクトリ下のファイルやディレクトリは変更されない。 (POSIX)
$ chmod +w example
--recursive
ファイルとディレクトリを再帰的に変更する。引数に指定したディレクトリに含まれるファイルとサブディレクトリも変更される。ただし、サブディレクトリ下のファイルやディレクトリは変更されない。 (GNU)
--help
ヘルプを表示して、コマンドを終了する。
--version
バージョン情報を表示して、コマンドを終了する。

関連記事