ローカルコンピュータからリモートコンピュータにファイルを転送する必要があります。リモートコンピュータの設定は次のとおりです。
[540607@hsldevoradb ~]$ su - Saphr002
Password:
[Saphr002@hsldevoradb ~]$ pwd
/odi/CSV/in
[Saphr002@hsldevoradb ~]$ ls -ld /odi/CSV/in
drwxrwxr-x. 2 oraedw oedw 4096 Oct 28 18:33 /odi/CSV/in
[Saphr002@hsldevoradb ~]$ groups
Saphr002 oedw
[Saphr002@hsldevoradb ~]$ touch a
[Saphr002@hsldevoradb ~]$ ls
a
これは/odi/CSV/in
ユーザー Saphr002 のホームディレクトリです。ユーザーSafr002にはこのディレクトリに対するフルアクセス権があり、/odi/CSV/in
このディレクトリにリモートでファイルを作成できます。ただし、ファイルを転送しようとするたびにftp
「553ファイルを生成できません」というエラーが発生します。
C:\Users\osprbs01>ftp 192.168.5.52
Connected to 192.168.5.52.
220 (vsFTPd 2.2.2)
User (192.168.5.52:(none)): Saphr002
331 Please specify the password.
Password:
230 Login successful.
ftp> put test.csv.odt
200 PORT command successful. Consider using PASV.
553 Could not create file.
ftp>
ファイル転送に役立ちますftp
。
答え1
SELinuxがftpdがこれらのファイルにアクセスできるようにするには、そのファイルに適切なコンテキストが必要です。
次の例はRHELからのものです。あなたのルートなどは異なる場合があります。
適切なコンテンツを見つけるために使用できますls -Zd /var/ftp/pub
(またはftp用に設定された適切なディレクトリ)。ファイル名の前にSELinuxコンテキストを表示する必要があります。
例:drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/pub
public_content_t は ftp コンテンツに適したタイプです。
その後、 --reference で指定するか、型自体を指定して chcon コマンドを使用できます。
例:
chcon -Rt public_content_t /odi/CSV/in
または以下を使用できます。
chcon --reference /var/ftp/pub /odi/CSV/in
使用するものは SELinux ポリシーによって異なります。完了したら、FTP プロセスを再試行してください。