vsftpdの「500 OOPS:ディレクトリを変更できません」エラーを修正するための設定は何ですか?


13

私の質問は、vsftpdシステムにログインできるようにするには、どの設定を変更する必要があるか、または実行するコマンドを教えてください。

sftpの代わりにftpを使用してログインすると、このエラーが発生します。

Name (localhost:dbadmin): dbadmin
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/dbadmin
Login failed.
ftp> 

これはを使用してログインするときに機能しsftp@ますが、私のサーバーはファイアウォールの背後にあり、ftpとsftpを使用してログインできる必要があります。

私は「OOPS」エラーに関するかなりの数の投稿を見てきましたが、これまでのところログインできませんでした。

ここに私のシステムと設定に関するいくつかの情報があります:

CentOS 6.4を実行しています。

iptablesとip6tablesは停止して無効になります。

私のホームディレクトリは700で保護されていますが、違いが出るかどうかを確認するために750を試しました。それはしませんでした。

ここにアクティブなラインがあります /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

ログイン名がuser_listにありません。


私も同じ問題に直面しました。>アクセスを775に変更してみてください。うまくいきました。

selinuxを無効にしても問題が解決しない場合は、ディレクトリの権限を再確認してください。あなたのftpユーザーは本当にそのフォルダに対する権利を持っていますか?または、そのフォルダの親にsetgidビットが設定されていますか?下に新しいフォルダを作成しようとすると、親フォルダの「s」ビットが問題を引き起こす可能性があります。
Chatchai Mao

回答:


10

この1つのコマンドを実行します。サービスとサーバーを再起動する必要はありません。

# setenforce 0

SELinuxステータスを確認するには:

# getenforce

または

/etc/sysconfig/selinux含めるファイルを編集する

SELINUX=disabled

再起動する必要があります。


3
興味深いのは、私が1年半前にほぼ同じ回答でドライブバイダウン投票を獲得したことです。
タコのグラブバス2015

7

SELinuxを無効にすることでSELINUX=disabled問題は解決しますが、これはお勧めできません。ftp_home_dir次のコマンドを実行してSELinuxブール値を設定することにより、ftpユーザーが自分のホームディレクトリにアクセスできるようにすることができます。

setsebool -P ftp_home_dir=1

バックティックが必要ですか、それともコード/コマンドのインラインおよびブロックフォーマットの結果ですか?
Anthon 2013年

いいえ、バッククォートは必要ありません。
suprjami 2014年

これは、問題を解決するための最良の答えであり、SELinuxなしでシステム全体のセキュリティレベルを低下させないようにする必要があります。
友文

ブール値ftp_home_dirが定義されていませんか?
エクスロード

3

次のコマンドを実行すると、FTPデーモンにすべてのファイルへのフルアクセスを常に許可できます。

setsebool -P allow_ftpd_full_access 1

2

こちらの手順に従って、selinuxを無効にしました。sftpを使わずにログインできました。

永久に無効にするには、編集/etc/selinux/configして設定しました

SELINUX=disabled

再起動後、正常にログインできました。


2
SELinuxを無効にすることは、SELinuxが問題の原因であるかどうかを判断するためのトラブルシューティング手順であり、最終的な解決策ではありません。SELinuxが原因であると判断したら、AVC拒否を調べて、変更する必要があるブール値を決定するか、SELinuxツールを使用してカスタムポリシーを作成する必要があります。SELinuxを永久に無効にすることは良い考えではありません。
suprjami 2014年

0

おそらく、ユーザーにはホームフォルダーに対する実行権限がありません。実行:

chmod +x /home/user

または、

chmod 700 /home/user

0

これが役立つことを願っています。

local_root=/var/www/ftp/$USER
user_sub_token=$USER

1
サイトへようこそ、そしてあなたの貢献に感謝します。あなたの答えが元の問題をどのように(つまり、どのようなメカニズムで)解決するかについての説明を追加していただけませんか?これにより、同様の問題に直面している他の人が、なぜ最初にこの問題を抱えているのかについてより多くの洞察を得ることができます。
AdminBee

-1

setenforce 0別の答えが示唆されているように実行しても、うまくいきませんでした。

次のコマンドで問題が解決しました:

chmod -R 755 /home/dbadmin

(以前は、/ home / dbadminディレクトリーには700の許可がありました。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.