kazmax - Linux で自宅サーバー

アクセス権(パーミッション)の変更 - chmod

ファイル・ディレクトリのアクセス権を変更するには、chmodコマンドを使います。

chmodコマンドは、シンボルモードと数値モードの2つのモードがあります。シンボルモードではアクセス権の追加、削除、指定ができます。数値モードは、コマンドのオプション部分の入力が短くてすみますが、指定したアクセス権へ固定する事しかできません。

Last Update : 2013年07月22日

アクセス権(パーミッション)の変更 - chmod 項目

  1. シンボルモード、数値モードの使用例
  2. chmodの書式
  3. シンボルモードの記号説明
  4. 数値モードの説明

1. シンボルモード、数値モードの使用例

シンボルモード、数値モードでの使用例です。使い方の雰囲気をつかんでください。細かな使い方は下で説明します。

数値モード
■ パーミッションを755に。
$ chmod 755 test.txt
$ ls -l
合計 4
-rwxr-xr-x 1 test_user test_user 0  7月 22 10:00 test.txt

シンボルモード
■「グループ」に書き込み権限を追加
$ chmod g+w test.txt
$ ls -l
合計 4
-rwxrwxr-x 1 test_user test_user 0  7月 22 10:00 test.txt


■「グループ」と「その他」のアクセス権から実行権限を削除
$ chmod go-x test.txt
$ ls -l
合計 4
-rwxrw-r-- 1 test_user test_user 0  7月 22 10:00 test.txt

2. chmod の書式

書式

chmod [options] mode file...

有用なオプション

オプション 意味
-v, --verbose 全ての file について変更した、もしくはしなかったという動作を詳細に表示する。
-R, --recursive ディレクトリやそこに含まれるもののアクセス権を再帰的に変更する。
$ chmod -v 644 test.txt
`test.txt' のモードを 0644 (rw-r--r--) に変更しました ←変更した内容が表示される

modeの部分でパーミッションを指定します。下で指定の仕方について説明していきます。

3. シンボルモードの記号説明

シンボルモードの場合、chmodの書式のmode部分を以下のように記号で記述します。

[ugoa...][[+-=][rwxXstugo...]...][,...]

例えば、

chmod g+w file.txt

のような感じに書きます。

細かく説明していきます。

シンボルモードでパーミッションを指定する場合、「u, g, o, a」のどれかではじまります。「u, g, o, a」は、どのユーザーに対するアクセス権の変更かを決めています。

記号の意味するところは以下のとおりです。

記号 意味
u 所有者
g 所有グループ
o 所有者でもなく、所有グループでもないその他のアカウント
a 全ての意味。u,g,o全てを選択した意味となります。
省略する ugoaを省略することも可能です。その場合は、「a」を指定したことになります。
※ umask に設定されたビッ ト位置部分のパーミッションは変化しないので使いどころで注意が必要です。

次に+,-,=を指定します。これら演算子は以下の意味を持ちます。

記号 意味
+ 選択したアクセス権を加える。
- 選択したアクセス権を削除する。
= 選択したアクセス権にする。

最後にアクセス権を指定します。

記号 意味
r 読み込み権限
w 書き込み権限
x 実行権限

memo

基本的には、上記のrwxをよく使うと思いますが、他にも以下のようなものがあります。

記号 意味
X 所有者、グループ、その他のどれかに対して実行権限が設定されていれば、実行権限を追加(削除)する。
s Set User ID, Set Group ID。※ また今度説明します。
t スティッキービット。※ また今度説明します。
u 所有者の部分に設定されているアクセス権を表す。g+u とかやるとグループに、所有者と同じアクセス権を追加できる。
g グループの部分に設定されているアクセス権。
o その他の部分に設定されているアクセス権。

一度に複数の変更内容を指定する

カンマで区切って一度にアクセス権を指定することもできます。

例えば、

chmod g+r,o+r test.txt

※「,」の後ろにスペースはいれてはいけない。

また、gにrwxを指定するといった事もできます。

chmod g+rwx test.txt

一度に複数のアクセス権限を操作できて便利です。

4. 数値モードの説明

数値モードはシンボルモードにくらべて簡単で、指定した数字のパーミッションに設定できます。

数字の作り方は、「アクセス権(パーミッション)の記号表記と数値表記」でも説明しています。

数字 意味
1000 スティッキービット
2000 Set Group ID
4000 Set User ID
100 所有者 実行権限
200 所有者 書き込み権限
400 所有者 読み込み権限
10 グループ 実行権限
20 グループ 書き込み権限
40 グループ 読み込み権限
1 その他 実行権限
2 その他 書き込み権限
4 その他 読み込み権限

上の表の値部分を全部足して指定すれば数字が計算できます。

例えば所有者の実行、書き込み、読み込み+グループの読み込み+その他の読み込み権限がほしい場合は、
100+200+400+40+4=744
となり、

chmod 744 test.txt

とすれば、所有者の実行、書き込み、読み込み+グループの読み込み+その他の読み込みといった権限に設定されます。

memo

・どのアカウントに
・どんなアクセス権を
・追加/削除/指定
がわかっていれば簡単ですね

Linux 基礎知識 関連記事