JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Solaris のシステム管理: セキュリティーサービス     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I セキュリティーの概要

1.  セキュリティーサービス (概要)

パート II システム、ファイル、およびデバイスのセキュリティー

2.  マシンセキュリティーの管理 (概要)

3.  システムアクセスの制御 (タスク)

4.  デバイスアクセスの制御 (タスク)

5.  基本監査報告機能の使用方法 (タスク)

6.  ファイルアクセスの制御 (タスク)

UNIX アクセス権によるファイル保護

ファイルの監視と保護を行うコマンド

ファイルとディレクトリの所有権

UNIX ファイルアクセス権

特殊なファイルアクセス権 (setuidsetgid、スティッキービット)

setuid アクセス権

setgid アクセス権

スティッキービット

umask のデフォルト値

ファイルアクセス権のモード

アクセス制御リストによる UFS ファイルの保護

UFS ファイルの ACL エントリ

UFS ディレクトリの ACL エントリ

UFS ACL を制御するコマンド

実行可能ファイルを原因とするセキュリティーへの悪影響を防止する

ファイルの保護 (タスクマップ)

UNIX アクセス権によるファイルの保護 (タスクマップ)

ファイル情報を表示する方法

ローカルファイルの所有者を変更する方法

ファイルのグループ所有権を変更する方法

ファイルアクセス権を記号モードで変更する方法

ファイルアクセス権を絶対モードで変更する方法

特殊なファイルアクセス権を絶対モードで変更する方法

ACL による UFS ファイルの保護 (タスクマップ)

ファイルに ACL が設定されているかどうかを検査する方法

ファイルに ACL エントリを追加する方法

ACL をコピーする方法

ファイルの ACL エントリを変更する方法

ファイルから ACL エントリを削除する方法

ファイルの ACL エントリを表示する方法

セキュリティーリスクのあるプログラムからの保護 (タスクマップ)

特殊なファイルアクセス権が設定されたファイルを見つける方法

プログラムが実行可能スタックを使用できないようにする方法

7.  自動セキュリティー拡張ツールの使用 (タスク)

パート III 役割、権利プロファイル、特権

8.  役割と特権の使用 (概要)

9.  役割に基づくアクセス制御の使用 (タスク)

10.  役割によるアクセス制御 (参照)

11.  特権 (タスク)

12.  特権 (参照)

パート IV 暗号化サービス

13.  Oracle Solaris の暗号化フレームワーク (概要)

14.  Oracle Solaris の暗号化フレームワーク (タスク)

15.  Oracle Solaris 鍵管理フレームワーク

パート V 認証サービスと安全な通信

16.  認証サービスの使用 (タスク)

17.  PAM の使用

18.  SASL の使用

19.  Secure Shell の使用 (タスク)

20.  Secure Shell (参照)

パート VI Kerberos サービス

21.  Kerberos サービスについて

22.  Kerberos サービスの計画

23.  Kerberos サービスの構成 (タスク)

24.  Kerberos エラーメッセージとトラブルシューティング

25.  Kerberos 主体とポリシーの管理 (タスク)

26.  Kerberos アプリケーションの使用 (タスク)

27.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

28.  Oracle Solaris 監査 (概要)

29.  Oracle Solaris 監査の計画

30.  Oracle Solaris 監査の管理 (タスク)

31.  Oracle Solaris 監査 (参照)

用語集

索引

UNIX アクセス権によるファイル保護

ファイルは、UNIX ファイルアクセス権と ACL を通して保護することができます。スティッキービットが設定されたファイルと、実行可能なファイルは、特殊なセキュリティー対策が必要です。

ファイルの監視と保護を行うコマンド

この表は、ファイルとディレクトリの監視と保護を行うコマンドについて説明したものです。

表 6-1 ファイルとディレクトリの保護を行うコマンド

コマンド
説明
マニュアルページ
ls
ディレクトリ内のファイルとファイル情報を表示します。
chown
ファイルの所有権を変更します。
chgrp
ファイルのグループ所有権を変更します。
chmod
ファイルのアクセス権を変更します。記号モード (文字と記号) または絶対モード (8 進数) を使用して、ファイルのアクセス権を変更できます。

ファイルとディレクトリの所有権

従来の UNIX ファイルアクセス権では、次に示す 3 つのユーザークラスに所有権を割り当てることができます。

ファイルアクセス権の割り当てや変更が行えるのは、通常、そのファイルの所有者だけです。しかし、ファイルの所有権の変更は、管理権限のあるユーザー (スーパーユーザーなど) または役割 (Primary Administrator 役割など) によっても行えます。システムポリシーをオーバーライドする方法については、例 6-2 を参照してください。

ファイルは、7 つの形式のいずれかになります。各形式は、次のように記号で示されます。

- (マイナス記号)

テキストまたはプログラム

b

ブロック型特殊ファイル

c

文字型特殊ファイル

d

ディレクトリ

l

シンボリックリンク

s

ソケット

D

ドア

P

名前付きパイプ (FIFO)

UNIX ファイルアクセス権

次の表に、各ユーザークラスに与えることができる、ファイルまたはディレクトリのアクセス権を示します。

表 6-2 ファイルとディレクトリのアクセス権

シンボル
アクセス権
オブジェクト
説明
r
読み取り
ファイル
ファイルの内容を開いて読み込むことができます。
ディレクトリ
ディレクトリ内のファイルを一覧表示できます。
w
書き込み
ファイル
ファイルの内容の変更またはファイルの削除を行えます。
ディレクトリ
ディレクトリに対してファイルまたはリンクを追加できます。また、ディレクトリ内のファイルまたはリンクの削除も行えます。
x
実行
ファイル
ファイルがプログラムまたはシェルスクリプトの場合、そのファイルを実行できます。また、exec(2) システム呼び出しの 1 つを使用してそのプログラムを実行することもできます。
ディレクトリ
ディレクトリ内のファイルを開いたり、実行したりできます。また、ディレクトリを作成し、その下にサブディレクトリを作成できます。
-
拒否
ファイルとディレクトリ
ファイルの読み込み、書き込み、または実行を行うことができません。

これらのファイルアクセス権は、通常のファイルと特殊ファイル (デバイス、ソケット、名前付きパイプ (FIFO) など) の両方に適用されます。

シンボリックリンクには、そのリンクが指すファイルのアクセス権が適用されます。

ディレクトリとそのサブディレクトリ内のファイルは、そのディレクトリに対するファイルアクセス権を制限することで保護できます。ただし、スーパーユーザーはシステム上のすべてのファイルとディレクトリにアクセスできます。

特殊なファイルアクセス権 (setuidsetgid、スティッキービット)

実行可能ファイルと公開ディレクトリには、 3 種類の特殊なアクセス権 (setuidsetgid、およびスティッキービット) を設定できます。これらのアクセス権を設定すると、その実行可能ファイルを実行するユーザーは、そのファイルの所有者 (またはグループ) の ID を持つことができます。

特殊なアクセス権はセキュリティー上の問題を引き起こすため、設定するときは十分な注意が必要です。たとえば、ユーザー ID (UID) を 0 (root の UID) に設定するプログラムを実行すれば、ユーザーはスーパーユーザー権限を取得できます。また、すべてのユーザーは、所有するファイルに対して特殊なアクセス権を設定できるため、これもセキュリティー上の問題の原因となります。

setuid アクセス権や setgid アクセス権を不正に使用してスーパーユーザー権限が取得されていないか、システムを監視する必要があります。疑わしいアクセス権によって、管理プログラムの所有権が rootbin ではなく一般ユーザーに付与されていることが考えられます。この特殊なアクセス権を使用しているファイルをすべて検索し、リストする方法は、「特殊なファイルアクセス権が設定されたファイルを見つける方法」を参照してください。

setuid アクセス権

setuid アクセス権を実行可能ファイルに設定すると、このファイルを実行するプロセスにはその実行可能ファイルを実行しているユーザーではなく、ファイルの所有者に基づいてアクセス権が与えられます。この特殊なアクセス権を使用すると、通常は所有者しか利用できないファイルやディレクトリにアクセスできます。

たとえば、passwd コマンドの setuid アクセス権によってユーザーはパスワードを変更できます。次に、setuid アクセス権のある passwd コマンドの例を示します。

-r-sr-sr-x   3 root     sys       28144 Jun 17 12:02 /usr/bin/passwd

この特殊なアクセス権は、プロセスの実行が終了したあとでも、高度な知識のあるユーザーは setuid プロセスによって与えられたアクセス権を維持する手段を見つけることができるため、セキュリティー上の危険が存在します。


注 - プログラムから予約済み UID (0 から 99) で setuid アクセス権を使用しても、実効 UID は正しく設定されない場合があります。シェルスクリプトを使用するか、setuid アクセス権では予約済み UID を使用しないようにしてください。


setgid アクセス権

setgidアクセス権は setuid アクセス権に似ています。プロセスの実効グループ ID (GID) はファイルを所有するグループに変更され、ユーザーにはそのグループに与えられたアクセス権に基づくアクセス権が与えられます。/usr/bin/mail コマンドには、次のように setgid アクセス権が設定されています。

-r-x--s--x   1 root   mail     67504 Jun 17 12:01 /usr/bin/mail

setgidアクセス権がディレクトリに適用されると、このディレクトリ内で作成されたファイルはディレクトリが所属するグループに含まれることになります。生成するプロセスが所属するグループに含まれるわけではありません。ディレクトリに対する書き込み権および実行権を持つユーザーは、そのディレクトリにファイルを作成できます。ただし、作成したファイルはユーザーのグループではなくディレクトリを所有するグループに割り当てられます。

setgidアクセス権を使用して不正にスーパーユーザー権限が取得されていないか、システムを監視する必要があります。疑わしいアクセス権によって、このようなプログラムへのグループアクセス権が、rootbin ではなく、意外なグループに与えられることがあります。このようなアクセス権を使用しているファイルをすべて検索し、一覧表示する方法は、「特殊なファイルアクセス権が設定されたファイルを見つける方法」を参照してください。

スティッキービット

「スティッキービット」は、ディレクトリ内のファイルを保護するアクセス権ビットです。ディレクトリにスティッキービットが設定されている場合、そのファイルを削除できるのはその所有者、ディレクトリの所有者、または特権ユーザーだけです。特権を持つユーザーの例として、root ユーザーや Primary Administrator 役割が挙げられます。スティッキービットにより、ユーザーは /tmp などの公開ディレクトリからほかのユーザーのファイルを削除できなくなります。

drwxrwxrwt 7  root  sys   400 Sep  3 13:37 tmp

TMPFS ファイルシステム上で公開ディレクトリを設定するときには、スティッキービットを手動で設定してください。手順については、例 6-5 を参照してください。

umask のデフォルト値

ファイルやディレクトリを作成するときには、デフォルトのアクセス権が設定されます。このシステムデフォルトは変更が可能です。テキストファイルのアクセス権は 666 であり、すべてのユーザーに読み取り権と書き込み権を与えます。ディレクトリと実行可能ファイルのアクセス権は 777 で、すべてのユーザーに読み取り権、書き込み権、および実行権を与えます。一般にユーザーは、自分の /etc/profile ファイル、.cshrc ファイル、または .login ファイルを手動で指定し、システムのデフォルトをオーバーライドします。

umask コマンドによって割り当てられる値は、デフォルトから差し引かれます。この処理には、chmod コマンドでアクセス権を与えるのと同じ方法でアクセス権を拒否する効果があります。たとえば、chmod 022 コマンドはグループとその他のユーザーに書き込み権を与えますが、umask 022 コマンドはグループとその他のユーザーの書き込み権を拒否します。

次の表に、代表的な umask の設定とその設定が実行可能ファイルに与える影響を示します。

表 6-3 各セキュリティーレベルの umask 設定

セキュリティーレベル
umask 設定
許可されないアクセス権
緩やか (744)
022
グループとその他のユーザーによる w
中程度 (740)
027
グループによる w、その他のユーザーによる rwx
中程度 (741)
026
グループによる w、その他のユーザーによる rw
厳しい (700)
077
グループとその他のユーザーによる rwx

umask 値の設定の詳細については、umask(1) のマニュアルページを参照してください。

ファイルアクセス権のモード

chmod コマンドを使用すると、ファイルのアクセス権を変更できます。ファイルまたはディレクトリの所有者、あるいはスーパーユーザーだけがそのアクセス権を変更できます。

chmod コマンドを使用して、次のどちらかのモードでアクセス権を設定できます。

次の表に、絶対モードでファイルのアクセス権を設定するための 8 進数値を示します。これらの数字を 3 つ組み合わせて、所有者、グループ、その他のユーザーのファイルアクセス権をこの順に設定します。たとえば、値 644 は、所有者に対して読み取り権と書き込み権を設定し、グループとその他のユーザーに対しては読み取り専用権を設定します。

表 6-4 絶対モードによるファイルのアクセス権の設定

8 進数値
設定されるファイルアクセス権
アクセス権の説明
0
---
なし
1
--x
実行権のみ
2
-w-
書き込み権のみ
3
-wx
書き込み権と実行権
4
r--
読み取り権のみ
5
r-x
読み取り権と実行権
6
rw-
読み取り権と書き込み権
7
rwx
読み取り権、書き込み権、実行権

次の表に、記号モードでファイルのアクセス権を設定するための記号の一覧を示します。記号では、アクセス権を設定または変更できる対象ユーザー、実行される操作、あるいは割り当てるまたは変更するアクセス権を指定できます。

表 6-5 記号モードによるファイルのアクセス権の設定

シンボル
機能
説明
u
who
ユーザー (所有者)
g
who
グループ
o
who
その他
a
who
すべて
=
operator
割り当て
+
operator
追加
-
operator
削除
r
permissions
読み取り
w
permissions
書き込み
x
permissions
実行
l
permissions
強制ロック、setgid ビットはオン、グループ実行ビットはオフ
s
permissions
setuid または setgid ビットはオン
t
permissions
スティッキービットはオン、その他の実行ビットはオン

機能列に <対象ユーザー> <操作> <アクセス権> の順で、ファイルまたはディレクトリのアクセス権を変更する記号を指定します。

who

アクセス権を変更する対象となるユーザーを指定します。

operator

実行する操作を指定します。

permissions

変更するアクセス権を指定します。

絶対モードまたは記号モードで、ファイルに特殊なアクセス権を設定できます。しかし、ディレクトリに setuid アクセス権を設定する場合と、ディレクトリからこのアクセス権を削除する場合は、記号モードを使用する必要があります。絶対モードでは、3 つ 1 組のアクセス権の左端に新しい 8 進数値を追加して、特殊なアクセス権を設定します。次の表に、ファイルに特殊なアクセス権を設定する 8 進数値を示します。

表 6-6 絶対モードによる特殊なファイルアクセス権の設定

8 進数値
特殊なファイルアクセス権
1
スティッキービット
2
setgid
4
setuid