私の質問は、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にありません。
次の1つのコマンドを実行します。サービスとサーバーを再起動する必要はありません。
# setenforce 0
SELinuxステータスを確認するには:
# getenforce
または
ファイルを編集/etc/sysconfig/selinux
含める
SELINUX=disabled
再起動する必要があります。
SELINUX=disabled
でSELinuxを無効にすると問題は解決しますが、これはお勧めできません。次のコマンドを実行してSELinuxブール値ftp_home_dir
を設定することにより、ftpユーザーが自分のホームディレクトリにアクセスできるようにすることができます。
setsebool -P ftp_home_dir=1
次のコマンドを実行すると、FTPデーモンにすべてのファイルへのフルアクセスを常に許可できます。
setsebool -P allow_ftpd_full_access 1
以下の手順に従って、selinuxを無効にしました here 。 sftpを使わずにログインできました。
永久に無効にするために、/etc/selinux/config
を編集して設定しました
SELINUX=disabled
再起動後、正常にログインできました。
これが役立つことを願っています。
local_root=/var/www/ftp/$USER
user_sub_token=$USER
おそらく、ユーザーにはホームフォルダーに対する実行権限がありません。実行:
chmod +x /home/user
または、
chmod 700 /home/user
ランニング setenforce 0
別の答えが示唆されたので、うまくいきませんでした。
次のコマンドで問題が解決しました:
chmod -R 755 /home/dbadmin
(以前は、/ home/dbadminディレクトリーには700の許可がありました。)