アクセス権
権限 |
表記 |
read right |
r |
write right |
w |
excute right |
x |
SUID, SGID
解説
- SUID: ファイルの所有者の権限でプログラムが実行される
- 所有者の実行権限 (
x
) の位置がs
に変わる
- 数値で表現するる
4xxx
(例:4755
)
- SGID: グループの権限でプログラムが実行される
- グループの実行権限 (
x
) の位置がs
に変わる
- 値で表現すると
2xxx
(例:2755
)
使用例
通常のファイル
$ ls -l normal_file
-rw-r--r-- 1 user group 1234 Feb 16 12:00 normal_file
権限 |
所有者(user) |
グループ(group) |
その他(other) |
-rw-r--r-- |
読み取り (r ), 書き込み (w ) |
読み取り (r ) |
読み取り (r ) |
SUID(Set User ID)
- 通常のパーミッション:
0755
→-rwxr-xr-x
- SUID 設定後:
4755
→-rwsr-xr-x
$ ls -l suid_file
-rwsr-xr-x 1 root group 1234 Feb 16 12:00 suid_file
権限 |
所有者(root) |
グループ(group) |
その他(other) |
-rwsr-xr-x |
読み取り (r ), 書き込み (w ), 実行 (s )(SUID) |
読み取り (r ), 実行 (x ) |
読み取り (r ), 実行 (x ) |
SGID(Set Group ID)
- 通常のパーミッション:
0755
→-rwxr-xr-x
- SGID 設定後:
2755
→-rwxr-sr-x
$ ls -l sgid_file
-rwxr-sr-x 1 user staff 1234 Feb 16 12:00 sgid_file
権限 |
所有者(user) |
グループ(staff) |
その他(other) |
-rwxr-sr-x |
読み取り (r ), 書き込み (w ), 実行 (x ) |
実行 (s )(SGID) |
読み取り (r ), 実行 (x ) |
chmodコマンド
$ chmod [オプション] 数値または記号 ファイル名
オプション
オプション |
英語の由来 |
説明 |
|
デフォルト |
設定しない場合、ファイルの権限は変更されない |
-R |
recursive |
指定したディレクトリ以下のすべてのファイル・ディレクトリの権限を再帰的に変更 |
-v |
verbose |
変更されたファイルの詳細を表示 |
-c |
changes |
変更があったファイルのみを表示 |
--reference=参照ファイル |
reference |
指定したファイルの権限と同じに設定 |
権限設定の構成要素
種別 |
記号 |
説明 |
対象(Who) |
u |
所有者(user) |
|
g |
所有グループ(group) |
|
o |
その他のユーザー(other) |
|
a |
すべて(all: ugo と同等) |
操作(Action) |
+ |
権限を追加 |
|
- |
権限を削除 |
|
= |
指定した権限に設定(既存の権限をリセット) |
許可(Permission) |
r |
読み取り(read) |
|
w |
書き込み(write) |
|
x |
実行(execute) |
|
s |
セットユーザーID(setuid)またはセットグループID(setgid) |
使用例
# 所有者に実行権限を追加
$ chmod u+x script.sh
# すべてのユーザーに読み取り権限を追加
$ chmod a+r file.txt
# 所有グループとその他のユーザーから書き込み権限を削除
$ chmod go-w config.conf
# 所有者の権限を読み取り・書き込みのみに設定
$ chmod u=rw file.txt
# 所有者にセットユーザーIDを設定
$ chmod u+s program
umaskコマンド
オプション
オプション |
由来 |
説明 |
default |
user mask |
- 新しく作成されるファイルやディレクトリのデフォルトのパーミッション(umask値)を表示する |
-S |
symbolic |
- 記号表記(u=rwx,g=rx,o=rx など)で現在のumask値を表示する |
umaskとは?
新しく作成されるファイルやディレクトリのデフォルトのパーミッションを制御する値
umaskの値を設定することで、不要なアクセス権を制限できる
基本的な動作
umaskは「許可しないパーミッション」を指定するため、実際のパーミッションはデフォルトのパーミッションからumask値を引くことで決定されます。
-
ファイルのデフォルトパーミッション:
666
(rw-rw-rw-)
-
ディレクトリのデフォルトパーミッション:
777
(rwxrwxrwx)
-
実際のパーミッション = デフォルトパーミッション - umask値
umask値の計算例
umask 022 の場合
ファイルの場合
-
デフォルトパーミッション:
666
(rw-rw-rw-)
-
umask値:
022
(---w--w--)
-
適用後のパーミッション:
644
(rw-r--r--)
ディレクトリの場合
-
デフォルトパーミッション:
777
(rwxrwxrwx)
-
umask値:
022
(---w--w--)
-
適用後のパーミッション:
755
(rwxr-xr-x)
umask 027 の場合
ファイルの場合
-
デフォルトパーミッション:
666
(rw-rw-rw-)
-
umask値:
027
(---w--wx)
-
適用後のパーミッション:
640
(rw-r-----)
ディレクトリの場合
-
デフォルトパーミッション:
777
(rwxrwxrwx)
-
umask値:
027
(---w--wx)
-
適用後のパーミッション:
750
(rwxr-x---)
主なumask値の設定例
umask値 |
ファイルのパーミッション |
ディレクトリのパーミッション |
説明 |
000 |
666 (rw-rw-rw-) |
777 (rwxrwxrwx) |
全ユーザーが読み書き・実行可能(セキュリティリスクあり) |
022 |
644 (rw-r--r--) |
755 (rwxr-xr-x) |
一般的な設定(所有者は書き込み可、他は読み取りのみ) |
027 |
640 (rw-r-----) |
750 (rwxr-x---) |
グループのみアクセス可、他のユーザーはアクセス不可 |
077 |
600 (rw-------) |
700 (rwx------) |
所有者のみアクセス可能(セキュリティ重視) |
Ping-t