chmod コマンドを使用すると、ファイルのアクセス権を変更できます。ファイルまたはディレクトリの所有者、またはスーパーユーザーだけがそのアクセス権を変更できます。
chmod コマンドを使用して、次のどちらかのモードでアクセス権を設定できます。
絶対モード - ファイルのアクセス権を表す数値を使用します。これは、アクセス権の設定に最も一般的に使用される方法です。絶対モードを使用してアクセス権を変更するときは、3 つ 1 組のアクセス権を 8 進数で表します。
表 51-5 に、絶対モードでファイルのアクセス権を設定するための 8 進数値を示します。
表 51-5 絶対モードによるファイルのアクセス権の設定|
8 進数値 |
ファイルのアクセス権 |
設定されるアクセス権 |
|---|---|---|
|
0 |
--- |
なし |
|
1 |
--x |
実行権のみ |
|
2 |
-w- |
書き込み権のみ |
|
3 |
-wx |
書き込み権と実行権 |
|
4 |
r-- |
読み取り権のみ |
|
5 |
r-x |
読み取り権と実行権 |
|
6 |
rw- |
読み取り権と書き込み権 |
|
7 |
rwx |
読み取り権、書き込み権、実行権 |
表 51-6 に、記号モードでファイルのアクセス権を設定するための記号を示します。記号では、アクセス権を設定または変更できる対象ユーザー、実行される操作、あるいは割り当てるまたは変更するアクセス権を指定できます。
表 51-6 記号モードによるファイルのアクセス権の設定|
記号 |
機能 |
説明 |
|---|---|---|
|
u |
対象ユーザー |
ユーザー (所有者) |
|
g |
対象ユーザー |
グループ |
|
o |
対象ユーザー |
その他 |
|
a |
対象ユーザー |
すべて |
|
= |
操作 |
割り当て |
|
+ |
操作 |
追加 |
|
- |
操作 |
削除 |
|
r |
アクセス権 |
読み取り |
|
w |
アクセス権 |
書き込み |
|
x |
アクセス権 |
実行 |
|
l |
アクセス権 |
強制ロック、setgid ビットはオン、グループ実行ビットはオフ |
|
s |
アクセス権 |
setuid または setgid ビットはオン |
|
S |
アクセス権 |
suid ビットはオン、ユーザー実行ビットはオフ |
|
t |
アクセス権 |
スティッキビットはオン、その他の実行ビットはオン |
|
T |
アクセス権 |
スティッキビットはオン、その他の実行ビットはオフ |
機能列の「対象ユーザー」、「操作」、および「アクセス権」を順番に連結した文字列によって、ファイルまたはディレクトリのアクセス権を変更する記号を指定します。
|
対象ユーザー |
アクセス権を変更する対象となるユーザーを指定する |
|
操作 |
実行する操作を指定する |
|
アクセス権 |
変更するアクセス権を指定する |
ファイルまたはディレクトリの所有者でない場合は、スーパーユーザーになります。
現在の所有者またはスーパーユーザーだけが、chmod コマンドを使用してファイルまたはディレクトリの所有者を変更できます。
chmod コマンドを使用してアクセス権を絶対モードで変更します。
$ chmod nnn filename
|
nnn |
ファイルまたはディレクトリのアクセス権を変更する 8 進数値。有効な 8 進数値については、表 51-5 を参照 |
|
filename |
ファイルまたはディレクトリ |
ファイルのアクセス権が変更されていることを確認します。
$ ls -l filename
次の例では、myfile に rwxr-xr-x アクセス権を設定します。
$ chmod 755 myfile $ ls -l myfile -rwxr-xr-x 1 kryten staff 6144 May 24 10:49 myfile
ファイルまたはディレクトリの所有者でない場合は、スーパーユーザーになります。
現在の所有者またはスーパーユーザーだけが、chmod コマンドを使用してファイルまたはディレクトリの所有者を変更できます。
chmod コマンドを使用してアクセス権を記号モードで変更します。
$ chmod who operator permission filename
|
who operator permission |
who では、アクセス権を変更するユーザーを指定し、operator では実行する操作を指定し、permission では変更後のアクセス権を指定する。有効な記号については、表 51-6 を参照 |
|
filename |
ファイルまたはディレクトリ |
ファイルのアクセス権が変更されていることを確認します。
$ ls -l filename
次の例では、その他のユーザーの読み取り権を削除します。
$ chmod o-r filea
次の例では、ユーザー、グループ、その他のユーザーの読み取り権と実行権を追加します。
$ chmod a+rx fileb
次の例では、グループに読み取り権、書き込み権、実行権を割り当てます。
$ chmod g=rwx filec