見出し画像

パーミッション変更で「4750」??何それ?

OHSとWebLogicServerでやりとりするために、ポート80(http通信)を使用したい場面がありますが、root権限でないと1024以下のポートを使用することができません。

そこで、OHS(Oracle HTTP Server)の設定の中で、1024以下のポートを使用するためにはパーミッション(権限)を変更しなければならないのです。

cd 【Oracleホーム】/ohs/bin
chown root launch 
chmod 4750 launch

みたいな感じで。

ここで、4750というものが見たことないので調べてみました。

4750の意味:

  • 4: SetUID(Set User ID)ビットを設定します。これにより、このファイルが実行されるとき、一時的にファイルの所有者(この場合はroot)の権限で実行されます。

  • 7: 所有者(root)に対して読み取り(4)、書き込み(2)、実行(1)の全権限を与えます。

  • 5: グループに対して読み取り(4)と実行(1)の権限を与えます。

  • 0: その他のユーザーに対して権限を与えません。

これらのコマンドの目的は、launchファイルをセキュアに設定し、特定の条件下でroot権限で実行できるようにすることです。これは、OHSが特定のシステムリソースにアクセスする必要がある場合に重要です。

ん?通常の「750」とは何が違うの???

  1. 750の場合:

    • 所有者:読み取り、書き込み、実行権限(7)

    • グループ:読み取り、実行権限(5)

    • その他:権限なし(0)

  2. 4750の場合:

    • 所有者:読み取り、書き込み、実行権限(7)

    • グループ:読み取り、実行権限(5)

    • その他:権限なし(0)

    • SetUIDビットが設定される(4)

主な違いは、先頭の「4」です。これがSetUIDビットを表します。

SetUIDの効果:

  1. ファイル実行時の権限変更:SetUIDが設定されたファイルが実行されると、そのプロセスは一時的にファイルの所有者の権限で動作します。

  2. 権限昇格:通常のユーザーが、rootが所有するSetUIDが設定されたファイルを実行すると、そのプロセスは一時的にroot権限を得ます。

  3. 特権操作の実行:これにより、通常は特権が必要な操作(例:特定のポートでのリッスン、システムファイルへのアクセスなど)を、一般ユーザーでも実行できるようになります。

SetUIDの使用例:

  • passwdコマンド:一般ユーザーがパスワードを変更できるようにするため。

  • 特定のネットワークコマンド:低いポート番号(1024未満)を使用するため。

注意点:

  • セキュリティリスク:不適切に使用すると、権限昇格の脆弱性につながる可能性があります。

  • 最小権限の原則:SetUIDの使用は必要最小限に抑えるべきです。

  • 慎重な管理:SetUID付きのファイルは特に注意深く管理し、定期的に監査する必要があります。

OHSの場合、launchファイルにSetUIDを設定することで、特定の重要な操作を実行できるようにしていると考えられます。

いいなと思ったら応援しよう!