GNU Core Utilities/chmod
表示
chmod コマンドは、ファイルやディレクトリのアクセス権限を変更するためのコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。
基本的な使い方
[編集]chmod [オプション] モード ファイル...
主なオプション(GNU coreutils版)
[編集]主なオプション オプション 説明 -R, --recursiveディレクトリ内のすべてのファイルに対して再帰的にアクセス権を変更 -v, --verbose変更したファイルごとに詳細を表示 -c, --changes実際に変更されたファイルに対してのみ変更内容を表示 -f, --silent, --quietエラーメッセージを表示しない
モードの指定方法
[編集]chmod ではアクセス権限を指定するためにモードを使用します。モードの指定には、数字または記号を使用する方法があります。
数字で指定
[編集]モードは3桁の数字で指定され、各桁は以下のように設定されます:
- 所有者(ユーザー)の権限
- グループの権限
- その他のユーザーの権限
例えば、755 の場合、所有者には読み、書き、実行の権限、グループおよびその他のユーザーには読みと実行の権限が与えられます。
chmod 755 file.txt
記号で指定
[編集]記号を使ってもアクセス権限を変更できます。記号は以下のように使います:
r:読み取り権限w:書き込み権限x:実行権限u:所有者(ユーザー)g:グループo:その他a:全員
例えば、u+x は所有者に実行権限を追加することを意味します。
chmod u+x file.txt
例
[編集]ファイルに実行権限を追加
[編集]chmod +x file.sh
file.sh に実行権限を追加。
所有者に読み書き権限を付与、その他のユーザーに読み権限を付与
[編集]chmod 644 file.txt
file.txt に所有者に読み書き権限、その他のユーザーに読み権限を付与。
再帰的にディレクトリ内のすべてのファイルの権限を変更
[編集]chmod -R 755 directory/
directory/ 内のすべてのファイルおよびディレクトリに 755 の権限を設定。
FreeBSD 版との違い
[編集]FreeBSD でも chmod コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
[編集]-R(再帰的に変更)オプションの動作が異なる- FreeBSD では、
chmod -Rが一部のシンボリックリンクには適用されないことがあります。 - 一方、GNU 版ではシンボリックリンクにも再帰的に変更を適用します。
- FreeBSD では、
-v(詳細表示)オプションの動作が異なる- FreeBSD では、
chmod -vが一部のファイルシステムでは出力されない場合があります。
- FreeBSD では、
- GNU coreutils 版を FreeBSD で使う方法
coreutilsパッケージをインストールするとgchmodという名前で GNU 版chmodが使える。
pkg install coreutils gchmod -R 755 directory/ # GNU coreutils 版の chmod
詳しくは、それぞれの環境で man chmod を確認してください。