Linux

ドキュメントルートに chmod コマンドを実行する際、指定すると便利なモード引数

投稿日:2019年1月8日 更新日:

1. はじめに

ウェブサイトのドキュメントルートになっているディレクトリに対して chmod コマンドを実行する際に指定すると便利な「モード (mode)」を紹介します。

モードとは、rwx といったパーミッションを表す引数のことです(r:読み込み権限 w:書き込み権限 x:実行権限)。

ここで紹介するモードを指定すれば、「ディレクトリ」と「ファイル」にそれぞれ異なるパーミッションを1度のコマンドでセットすることができます(再帰的に)。

といってもウェブサイトによって適切なパーミッションは異なるので、あくまで紹介するのは私がよく使う「お勧め」ということになります。ご自分の環境で問題ないかどうかを確かめてから使って下さい。

2. chmod に関する前提知識

chmod コマンドの基礎知識については省略します。

以下の記事が分かりやすそうです。

【 chmod 】 ファイルやディレクトリのアクセス権を変更する | 日経 xTECH(クロステック)

3. ディレクトリは rwxr-xr-x ファイルは rw-r--r-- にする

引数で指定したディレクトリに含まれるすべての「ディレクトリ」「ファイル」のパーミッションを以下に変更します。

パーミッションをセットする対象 セットするパーミッション
ディレクトリ rwxr-xr-x
ファイル rw-r--r--

コマンドは以下です。

$ chmod -R a-x,go-wx,u+w,a+rX path/to/dir

解説

chmod コマンドに指定するモードとは、この場合「a-x」や「go-wx」の部分のことを言いますが(カンマで区切っています)、これは前から順番に適用されます。

ですので、この場合以下のような流れでモードがセットされます。

 
順番 適用されるモード ディレクトリのパーミッション(適用後) ファイルのパーミッション(適用後)
1 a-x ??-??-??- ??-??-??-
2 go-wx ??-?--?-- ?--?--?--
3 u+w ?w-?--?-- ?w-?--?--
4 a+rX rwxr-xr-x rw-r--r--

4. ディレクトリは rwxrwxr-x ファイルは rw-rw-r-- にする

引数で指定したディレクトリに含まれるすべての「ディレクトリ」「ファイル」のパーミッションを以下に変更します。

パーミッションをセットする対象 セットするパーミッション
ディレクトリ rwxrwxr-x
ファイル rw-rw-r--

先ほどと違い、グループのパーミッションが「書き込み可」になっています。

コマンドは以下です。

$ chmod -R a-x,go-wx,ug+w,a+rX path/to/dir

解説

この場合以下のような流れでモードがセットされます。

 
順番 適用されるモード ディレクトリのパーミッション(適用後) ファイルのパーミッション(適用後)
1 a-x ??-??-??- ??-??-??-
2 go-wx ??-?--?-- ??-?--?--
3 ug+w ?w-?w-?-- ?w-?w-?--
4 a+rX rwxrwxr-x rw-rw-r--

5. X というモードについて

実行属性を与えるモードは通常 x で指定しますが、似ているようで少し異なる X という指定方法もあります。

X と指定する場合、一定の条件に合致した場合のみ実行属性を与えることができます。

Xを指定した場合の動作
ディレクトリ x と同じように実行属性を与える。
ファイル u, g, o のどれか1つ以上に既に x がついているファイルに対してのみ、指定した対象(u, g, o) に実行属性を与える。

「ディレクトリ」と「ファイル」にそれぞれ異なるパーミッションを1度のコマンドでセットすることができるのは、X のおかげです。

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

xdebug

Ubuntu 16.04.3 LTS + PHP 7.2 の環境に Xdebug をインストールする

2018年1月29日に、Xdebug 2.6.0 (stable版) がリリースされました。 Homestead にもまた Xdebug がデフォルトでインストールされるようになるのではないかと思いま …

Linux

指定した条件にマッチするファイルを検索する find コマンド

find コマンドについて説明します。 ※ 本ページで扱うのは、find (GNU findutils) 4.7.0-git です。 目次1. find コマンドの使い方式 (EXPRESSION)式 …

Linux

dig コマンドの出力内容を最小限にするオプション

dig コマンドの出力を最小限にするオプションについて書いています。

Let's Encrypt

Let’s Encrypt で ‘-0001’ がついた証明書データを削除する方法

目次1. 問題点2. 対応方法念のため、存在している証明書を全て表示します。いらない証明書データを削除する3. 間違えて生成した ‘-0001’ の方を Webサイトで使用して …

Linux

sed コマンドの基本形式

sed コマンドの基本的な指定形式について説明します。