FTPユーザーがOracle所有フォルダの内容を変更できるようにする

FTPユーザーがOracle所有フォルダの内容を変更できるようにする

Oracle DBとAPEXがインストールされたOracle Linux VMがあります。データベースはにあります。このフォルダにはAPEX製品に関連する/home/oracle/product/11.2.0/dbhome_1フォルダがあります/Product_1/Product_2

現在、FTPを使用しているOracleユーザーを介してこれらの製品フォルダにファイルが追加されます。これは、これらの資格情報を持つ人が誰でもボックスにログインしてはいけない多くのタスクを実行できることを意味します。

ftpuserの設定方法

$ usermod -d /home/oracle/products/11.2.0/dbhome_1/ ftpuser

これにより、ftpuserはサブフォルダ内のファイルのみを読み書きできます。 APEXがこれらのフォルダのファイルを読み取ってデータベースにインポートできるように、これらのファイルはOracleに属する必要があることを覚えていますか?

私が見るすべての記事には、ftpuserが使用する新しいフォルダを作成するように指示されています。

ありがとう

ベストアンサー1

APEXが所有権要件を具体的に適用しない限り(愚かなことですが)、Oracleがファイル自体を読むことができるだけです。 APEXがインポートされた後にファイルを移動または削除する必要がある場合ファイルがあるディレクトリAPEXで書くことができるはずです。

APEXについてはわかりませんが、FTPユーザーのホームディレクトリを次に設定することを考えてみましょう。

usermod -d /home/ftpuser ftpuser

次に、APEX製品フォルダを/home/ftpuser/Product_1背面に移動し、次のシンボリックリンクを作成します。

ln -s /home/ftpuser/Product_1 /home/oracle/products/11.2.0/dbhome_1/Product_1

するようにする/home/oracle/products/11.2.0/dbhome_1/Product_1 -> /home/ftpuser/Product_1

/ftpuserは、FTPを介しているかのようにホームディレクトリを表示できるようにルートを変更できるため、実際のディレクトリツリー/home/oracle/...にはまったくアクセスできません。一方、APEXはシンボリックリンクを実際のディレクトリと同じように処理し(シンボリックリンクを特に確認しない限り)、リンクを介して製品サブフォルダにアクセスする必要があります。

ftpuser独自のグループが必要です。groupadd ftpuserつまり、最初に必要な場合は、次にグループを指定する必要がありますusermod -g ftpuser ftpuser。ユーザーはoracleグループの補助メンバーでもなければなりませんftpuserusermod -a -G ftpuser oracleまたはgpasswd -a oracle ftpuser

権限と所有権:

  • /home/ftpuserルートは所有できますが、ftpuserがアクセスできる必要があるため、ftpuserにプライベートグループがある場合は、最大制限は()にすることができますchown root:ftpuserchmod 0750drwxr-x---
  • /home/ftpuser/Product_1製品サブフォルダーは、ユーザー、グループが所有でき、ユーザーとグループの両方が書き込むことができます。 setgid ビットは、グループが正しく設定されていることを確認します。だからそして()。oracleftpuserchown oracle:ftpuserchmod 2770drwxrws---
  • 可能であれば、FTPサーバーを次のように構成する必要があります。いいえクライアントファイルの権限は保持されます。標準umask 022または002を適用する必要があります。したがって、Productsサブフォルダに追加されたファイルはftpuser、グループftpuserと権限0644または0664(-rw-r--r--または-rw-rw-r--それぞれ)が所有します。

oracleこのグループのメンバーになるため、アクセスftpuserできます/home/ftpuser。製品サブフォルダーが所有されているため、誤った権限でファイルを作成してoracleも、少なくともそのファイルを削除して常に作成できます。必要に応じて新しいファイル。製品サブフォルダー内のファイルは、そのフォルダーにアクセスできる人なら誰でも読むことができるため、これらのファイルの読み取りとインポートに問題はありません。 FTPサーバーから適用すると、必要に応じてファイルを書き込むこともできます。ftpuseroracleumask 002oracle

メモ:FTPユーザーは、FTPサーバーのchroot機能が使用されている場合でもProduct_1製品サブフォルダーを表示できます。 APEX設定はまったく変更する必要はありません。シンボリックリンクを使用すると、既存のパス名をそのまま使用できるためです(APEXがシンボリックリンクを特に確認して拒否しない限り)。~/Product_1/Product_1

製品サブフォルダーの物理ディスク領域は、ディレクトリ階層以外の場所/home/ftpuser/Product_1で使用されるようになりました。/home/oracle/...これが問題の場合は、シンボリックリンクの代わりにLinuxバインドマウントを使用し、最初に空のディレクトリなどをマウントポイントにし/home/ftpuser/Product_1てから、ファイルに次の行を追加できます/etc/fstab

/home/oracle/products/11.2.0/dbhome_1/Product_1 /home/ftpuser/Product_1 none bind 0 0

再起動または操作を実行したらmount -a、実際の製品サブフォルダにアクセスできるようになりました/home/ftpuser/。シンボリックリンクとは異なり、このバインドマウントを使用すると、バックアップから追加のコピーを除外しない限り、各製品サブフォルダはバックアップ容量を2倍にすることができます。

おすすめ記事