ファイルやディレクトリのアクセス権を変更する場合は、chmod コマンドを使います。アクセス権を変更するには、そのファイルやディレクトリの所有者であるか、root にアクセスできる必要があります。chmod コマンドの一般的な形式は次のとおりです。
chmod permissions name |
permissions は変更用のアクセス権、name は影響を受けるファイルやディレクトリの名前を示します。
アクセス権を指定するには、いくつかの方法があります。ここでは最も簡単な方法を紹介します。
次の文字のどれかを使って関連するユーザを指定します。
u (所有者)
g (グループ)
o (他のユーザ)
a (上記 3 つのカテゴリの全ユーザ)
アクセス権を付加するか (+) 除去するか (-) を指定します。
次のいずれかの文字を使って関連するアクセス権を指定します。
r (読み取り)
w (書き込み)
x (実行)
次の例では、carrots ディレクトリに対する書き込み権を、同じグループに属するユーザに付与しています (つまり permissions は g+w、name は carrots)。
$ ls -l carrots drwxr-xr-x 3 user2 1024 Feb 10 11:15 carrots $ chmod g+w carrots $ ls -l carrots drwxrwxr-x 3 user2 1024 Feb 10 11:15 carrots $ |
例で示すように、グループのアクセス権のハイフン (-) が chmod コマンドの実行後は w に変更されています。
この同じディレクトリに対する読み取り権と実行権を、グループに属さない他のユーザから除去するには (permissions は o-rx)、次のように入力します。
$ ls -l carrots drwxrwxr-x 3 user2 1024 Feb 10 11:15 carrots $ chmod o-rx carrots $ ls -l carrots drwxrwx--- 3 user2 1024 Feb 10 11:15 carrots $ |
他のユーザのアクセス権の r (読み取り権) と x (実行権) が、両方ともハイフン (-) に変更されたことが分かります。
新しいファイルやディレクトリを作成すると、アクセス権がシステムによって自動的に割り当てられます。
通常、新規ファイルに関するデフォルト設定は次のようになります。
-rw-r--r--
また、新規ディレクトリについては次のようになります。
drwxr-xr-x
したがって、turnip という新規ファイルをその所有者 (user2) が実行できるようにする場合は、次のように入力します。
$ ls -l turnip -rw-r--r-- 3 user2 1024 Feb 10 12:27 turnip $ chmod u+x turnip $ ls -l turnip -rwxr--r-- 3 user2 1024 Feb 10 12:27 turnip $ |
3 つのカテゴリの全ユーザのアクセス権を変更する場合は、-a オプションを使います。たとえば、garlic という新規ファイルを全ユーザが実行できるようにするには、次のように入力します。
$ ls -l garlic -rw-r--r-- 3 user2 1024 Feb 10 11:31 garlic $ chmod a+x garlic $ ls -l garlic -rwxr-xr-x 3 user2 1024 Feb 10 11:31 garlic $ |
上記の chmod コマンドの結果、3 つのカテゴリの全ユーザに x (実行権) が与えられます。
ワイルドカード文字の * を使って、複数のファイルやディレクトリのアクセス権を変更することもできます。たとえば、カレントディレクトリ veggies 内の全ファイルのアクセス権を変更して、所有者だけがファイルの書き込みをできるようにする場合は、次のように入力します。
上記の例では、この chmod 操作をこれからどのディレクトリで実行するのか確認する必要があることを示すために、pwd コマンドを最初に実行しています。