前節では、chmod コマンドを使用してファイルアクセス権を現在の設定に対して相対的に変更する方法を説明しました。chmod コマンドに数字コードを指定することにより、ファイルまたはディレクトリのアクセス権を設定することもできます。
この形式の chmod コマンドの構文は次のとおりです。
chmod numcode name
この例では、numcode は数値コード、name はアクセス権が変更されるファイルやディレクトリの名前です。
数値コードは、3 つの数字からなります。1 つの数字が 3 つのユーザカテゴリ (所有者、グループ、他のユーザ) の各々に適用されます。たとえば、次のコマンドは、所有者とグループに対して読み取り権、書き込み権、実行権の絶対アクセス権を設定し、ほかのユーザに対して実行権だけを設定しています。
$ chmod 771 garlic |
表 3–2 は、garlic のアクセス権が 771 というコードによってどのように表現されるかを示しています。
表 3–2 garlic のアクセス権
アクセス権 |
ユーザー |
グループ |
その他のユーザー |
---|---|---|---|
読み取り |
4 |
4 |
0 |
書き込み |
2 |
2 |
0 |
実行 |
1 |
1 |
1 |
合計 |
7 |
7 |
1 |
表 3–2 の各列は、所有者、グループ、他のユーザというユーザカテゴリにそれぞれ対応しています。読み取り権を設定するには、適切な列に 4 を挿入します。同様に、書き込み権を設定するには 2 を挿入し、実行権を設定するには 1 を挿入します。表の最終行に表示された各列のそれぞれの合計値が最終的な数値コードになります。
数値コードを使用して絶対アクセス権を設定するもう 1 つの例を次に示します。ここでは chmod の結果を確認するために、ls -l コマンドを実行しています。
$ ls -l onions -rwxr-xr-x 1 user2 users 65536 Nov 1 09:18 onions $ chmod 755 onions $ ls -l onions -rwxr-xr-x 1 user2 users 65536 Nov 1 09:18 onions $ |
chmod 755 onions と入力すると、ファイル onions のアクセス権を、そのユーザには読み取り、書き込み、実行可能、グループメンバーには読み取りと実行可能、その他のユーザには読み取りと実行可能に設定できます。表 3–3 に、onions に対するアクセス権を設定するのに使用する数値コードを示します。
表 3–3 onion のアクセス権
アクセス権 |
ユーザー |
グループ |
その他のユーザー |
---|---|---|---|
読み取り |
4 |
4 |
4 |
書き込み |
2 |
0 |
0 |
実行 |
1 |
1 |
1 |
合計 |
7 |
5 |
5 |
所有者、グループ、およびその他のユーザ全員にファイル cabbage に対する読み取り、書き込み、および実行の権限を与えるには、次のように指定します。
$ ls -l cabbage -rw-r--r-- 1 user2 users 75 Nov 1 09:28 cabbage $ chmod 777 cabbage $ ls -l cabbage -rwxrwxrwx 1 user2 users 75 Nov 1 09:28 cabbage $ |
表 3–4 は、上記の例でアクセス権設定に使用されている数値コードを示しています。
表 3–4 cabbage のアクセス権
アクセス権 |
ユーザー |
グループ |
その他のユーザー |
---|---|---|---|
読み取り |
4 |
4 |
4 |
書き込み |
2 |
2 |
2 |
実行 |
1 |
1 |
1 |
合計 |
7 |
7 |
7 |
777 という数値コードが、指定できる最大のアクセス権の値です。
相対アクセス権の変更の場合と同様に、ワイルドカード文字の * を使って現在のディレクトリ内の全ファイルの絶対アクセス権を設定することもできます。たとえば、次に示すように、現在のディレクトリ内のすべてのファイルについて絶対的なアクセス権を設定するとします。
所有者 – 読み取り権、書き込み権、および実行権
グループ – 読み取り権と書き込み権
その他のユーザ – 実行権
これらのアクセス権を設定するには、次のように入力します。
$ pwd /home/user2/veggies $ ls -l -rwxrwxrwx 1 user2 users 5618 Nov 1 09:18 beets -rwxrwxrwx 1 user2 users 1777 Nov 1 09:18 corn -rwxrwxrwx 1 user2 users 3424 Nov 1 09:18 garlic -rwxrwxrwx 1 user2 users 65536 Nov 1 09:18 onions $ chmod 751 * $ ls -l -rwxr-x--x 1 user2 users 5618 Nov 1 09:18 beets -rwxr-x--x 1 user2 users 1777 Nov 1 09:18 corn -rwxr-x--x 1 user2 users 3424 Nov 1 09:18 garlic -rwxr-x--x 1 user2 users 65536 Nov 1 09:18 onions $ |
上記の例では、この chmod 操作をこれからどのディレクトリで実行するのか確認する必要があることを示すために、pwd コマンドを最初に実行しています。最初の ls -l コマンドは、アクセス権の変更結果を明らかにするために実行しています。相対アクセス権とは違って、絶対アクセス権を設定するときは、アクセス権の現在の設定状態を知る必要はありません。
chmod(1) コマンドについての詳細は、『man pages section 1: User Commands』を参照してください。