Linuxの権限管理について学んだあとは、権限を変更するためのコマンドを学びます。 今回学ぶchmodコマンドはファイルやディレクトリの権限変更をするためのコマンドです。chmodコマンドは、change modeの略です。

chmodコマンド(権限変更)

3年以内に更新されました。情報が古い可能性があります。
更新日 : 2019年09月18日

Linuxの権限管理について学んだあとは、権限を変更するためのコマンドを学びます。

今回学ぶchmodコマンドはファイルやディレクトリの権限変更をするためのコマンドです。chmodコマンドは、change modeの略です。

chmodコマンドの使い方

まずchmodコマンドは権限変更のためのコマンドなので、ファイル及びディレクトリの所有者あるいはrootユーザーのみが権限を変更できます。

$chmod 権限指定 ファイルorディレクトリパス

これで権限指定の内容でファイルやディレクトリの権限が変更されます。

いくつか権限変更の指定方法がありますが、筆者が最もよく使うわかりやすい方法で権限変更をお教えします。

権限指定方法

権限は読み込み・書き込み・実行の3種類で、権限の保有者として所有者・グループ・第三者の3つの立場での権限がありました。これについてはLinuxの権限管理を読んでみてください。

権限3種類の指定

chmodコマンドではこの全9種類の指定を数字の組み合わせで指定することができます。

数字権限
0権限なし
1実行権限
2書き込み権限
4読み込み権限

これが一覧です。権限付与の指定時にはこれらの数字を足したものを指定します。

例えばあるファイルに読み込み権限のみを付与する場合には読み込み権限を示す4を指定します。
書き込み権限・読み込み権限を付与する場合には2+4なので6を指定します。

このようにつけたい権限を数字を足して指定することで権限を付与できます。
すべての権限を付けたい場合には1+2+4で7を指定します。

これで読み込み・書き込み・実行の権限3種類の指定方法はOKです。

権限を付与するユーザーの指定

次に所有者・グループ・第三者に対してどのように権限を指定するのかですが、これは単純に数字を並べるだけです。

例えば、所有者はすべての権限・グループには書き込みと読み込み・第三者には実行権限のみを付与したい場合
所有者はすべての権限なので7を指定
グループは書き込み+読み込みなので6を指定
第三者は実行権限のみなので1を指定することになります。

つまり実際に権限を指定する際には761と記載することになります。

これを踏まえて、test.txtというファイルに上記の権限を付与する際には以下のようにコマンドを実行します。

$chmod 761 test.txt

これで上記の例の通り、test.txtファイルの権限は、所有者はすべての権限・グループは書き込み及び読み込み・第三者は実行権限のみとなります。

ls -lコマンドで権限を確認できるはずです。詳しくはlsコマンドをお読みください。

よく利用するオプション

  • -R
    recursiveオプションです。ディレクトリを指定した場合にディレクトリ内にあるファイルやディレクトリにも再帰的に権限を変更します。