
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
グループの補助メンバーでもなければなりませんftpuser
。usermod -a -G ftpuser oracle
またはgpasswd -a oracle ftpuser
。
権限と所有権:
/home/ftpuser
ルートは所有できますが、ftpuserがアクセスできる必要があるため、ftpuserにプライベートグループがある場合は、最大制限は()にすることができますchown root:ftpuser
。chmod 0750
drwxr-x---
/home/ftpuser/Product_1
製品サブフォルダーは、ユーザー、グループが所有でき、ユーザーとグループの両方が書き込むことができます。 setgid ビットは、グループが正しく設定されていることを確認します。だからそして()。oracle
ftpuser
chown oracle:ftpuser
chmod 2770
drwxrws---
- 可能であれば、FTPサーバーを次のように構成する必要があります。いいえクライアントファイルの権限は保持されます。標準umask 022または002を適用する必要があります。したがって、Productsサブフォルダに追加されたファイルは
ftpuser
、グループftpuser
と権限0644または0664(-rw-r--r--
または-rw-rw-r--
それぞれ)が所有します。
oracle
このグループのメンバーになるため、アクセスftpuser
できます/home/ftpuser
。製品サブフォルダーが所有されているため、誤った権限でファイルを作成してoracle
も、少なくともそのファイルを削除して常に作成できます。必要に応じて新しいファイル。製品サブフォルダー内のファイルは、そのフォルダーにアクセスできる人なら誰でも読むことができるため、これらのファイルの読み取りとインポートに問題はありません。 FTPサーバーから適用すると、必要に応じてファイルを書き込むこともできます。ftpuser
oracle
umask 002
oracle
メモ: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倍にすることができます。