RHELでFTPエラー「553ファイルを生成できません」

RHELでFTPエラー「553ファイルを生成できません」

ローカルコンピュータからリモートコンピュータにファイルを転送する必要があります。リモートコンピュータの設定は次のとおりです。

[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 プロセスを再試行してください。

関連情報