294 |
<p>カーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシーを変更することができるプログラム名を /proc/ccs/manager に登録します。プログラム名ではなくドメイン名で登録することもできます。</p> |
<p>カーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシーを変更することができるプログラム名を /proc/ccs/manager に登録します。プログラム名ではなくドメイン名で登録することもできます。</p> |
295 |
|
|
296 |
<ul> |
<ul> |
|
<li>ユーザIDと実効ユーザIDの両方が0であるプロセス</li> |
|
|
<li>ユーザIDが0ではないが、カーネルとのインタフェースの所有者IDがプロセスのユーザIDと一致するプロセス</li> |
|
|
<li>グループIDが0ではないが、カーネルとのインタフェースのグループIDがプロセスのグループIDと一致するプロセス</li> |
|
|
</ul> |
|
|
|
|
|
<p>で、なおかつ</p> |
|
|
|
|
|
<ul> |
|
297 |
<li>/proc/ccs/manager に登録されているプログラム名を持つプロセス</li> |
<li>/proc/ccs/manager に登録されているプログラム名を持つプロセス</li> |
298 |
<li>/proc/ccs/manager に登録されているドメイン名を持つプロセス</li> |
<li>/proc/ccs/manager に登録されているドメイン名を持つプロセス</li> |
299 |
</ul> |
</ul> |
300 |
|
|
301 |
<p>だけがカーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシーを変更できます。</p> |
<p>だけがカーネルとのインタフェースである /proc/ccs/ ディレクトリを経由してポリシーを変更できます。以下に例を示します。</p> |
302 |
|
|
303 |
<table border="1"> |
<table border="1"> |
304 |
<tr><td> |
<tr><td> |
313 |
</td></tr> |
</td></tr> |
314 |
</table> |
</table> |
315 |
|
|
316 |
|
<p>上記の制約に加えて、デフォルトではユーザIDと実効ユーザIDの両方が0であるプロセスだけがポリシーを変更できますが、 非 root ユーザによるポリシーの変更を認めたい場合には /proc/ccs/manager に対して</p> |
317 |
|
|
318 |
|
<table border="1"> |
319 |
|
<tr><td> |
320 |
|
# echo manage_by_non_root | loadpolicy -m |
321 |
|
</td></tr> |
322 |
|
</table> |
323 |
|
|
324 |
<p>/proc/ccs/manager の内容が上記の場合のポリシー変更の可否について、以下に例を示します。</p> |
<p>のように manage_by_non_root というキーワードを書き込むことで、ユーザIDと実効ユーザIDのチェックを無効にすることができます。また、再びユーザIDと実効ユーザIDのチェックを有効にするには、</p> |
325 |
|
|
326 |
<table border="1"> |
<table border="1"> |
327 |
<tr><td colspan="4">プロセスの権限</td><td colspan="3">インタフェースの権限</td><td rowspan="2">ポリシー変更の可否</td></tr> |
<tr><td> |
328 |
<tr><td>プログラム名またはドメイン名</td><td>ユーザID</td><td>実効ユーザID</td><td>グループID</td><td>ファイル名</td><td>所有者ID</td><td>グループID</td></tr> |
# echo delete manage_by_non_root | loadpolicy -m |
329 |
<tr><td>/usr/lib/ccs/editpolicy</td><td>0</td><td>0</td><td>任意</td><td>/proc/ccs/domain_policy</td><td>任意</td><td>任意</td><td>○</td></tr> |
</td></tr> |
|
<tr><td>/usr/lib/ccs/editpolicy</td><td>500</td><td>任意</td><td>任意</td><td>/proc/ccs/exception_policy</td><td>500</td><td>任意</td><td>○</td></tr> |
|
|
<tr><td>/usr/lib/ccs/loadpolicy</td><td>任意</td><td>任意</td><td>1000</td><td>/proc/ccs/manager</td><td>任意</td><td>1000</td><td>○</td></tr> |
|
|
<tr><td>/usr/lib/ccs/ld-watch</td><td>0</td><td>0 以外</td><td>0</td><td>/proc/ccs/exception_policy.conf</td><td>任意</td><td>任意</td><td>×</td></tr> |
|
|
<tr><td>/bin/tcsh</td><td>任意</td><td>任意</td><td>任意</td><td>/proc/ccs/profile</td><td>任意</td><td>任意</td><td>×</td></tr> |
|
|
<tr><td><kernel> /sbin/mingetty /bin/login /bin/bash</td><td>1000</td><td>任意</td><td>任意</td><td>/proc/ccs/domain_policy</td><td>1000</td><td>任意</td><td>○</td></tr> |
|
|
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> |
|
|
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> |
|
|
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> |
|
330 |
</table> |
</table> |
331 |
|
|
332 |
<p>ただし、学習モード用のプロファイルが割り当てられているプロセスは、アクセスを要求するだけで<a href="#system_policy">/proc/ccs/system_policy</a>または<a href="#domain_policy">/proc/ccs/domain_policy</a>へと自動的にアクセス許可が追加されていきます。</p> |
<p>のように delete manage_by_non_root というキーワードを書き込んでください。 /proc/ccs/ 以下のエントリの所有者は root なので、非 root ユーザによるアクセスを認めるためには必要に応じて chown/chmod を実行してください。</p> |
333 |
|
|
334 |
|
<p>なお、学習モード用のプロファイルが割り当てられているプロセスは、アクセスを要求するだけで<a href="#system_policy">/proc/ccs/system_policy</a>または<a href="#domain_policy">/proc/ccs/domain_policy</a>へと自動的にアクセス許可が追加されていきます。</p> |
335 |
|
|
336 |
<h1><a name="Domain_Rules">4. ドメインに関して</a></h1> |
<h1><a name="Domain_Rules">4. ドメインに関して</a></h1> |
337 |
|
|