vsftpd:pam_userdb権限が拒否されました。

vsftpd:pam_userdb権限が拒否されました。

仮想ユーザーを許可するためにCentos 6.6でVSFTPDを設定しようとしました。以下は私のものですvsftpd.conf。では、仮想ユーザーのみを許可するように設定されています/etc/vsftpd/vsftpd-virtual-user.db

listen=YES
local_umask=002
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
pam_service_name=vsftpd_virtual
guest_enable=YES
local_root=/var/sites
chroot_local_user=YES
hide_ids=YES
connect_from_port_20=YES
pasv_enable=YES
pasv_addr_resolve=YES
pasv_address=10.175.9.23
pasv_min_port=1024
pasv_max_port=65535

/etc/pam.d/vsftpd_virtualまた、以下を使用してvsftpd_virtualモジュールを設定しました。

#%PAM-1.0
auth    required        pam_userdb.so   db=/etc/vsftpd/vsftpd-virtual-user
account required        pam_userdb.so   db=/etc/vsftpd/vsftpd-virtual-user
session required        pam_loginuid.so

localhostでFTPにログインしようとすると、FTPは次の行で530エラーを生成します/var/log/secure

vsftpd: pam_userdb(vsftpd_virtual:auth): user_lookup: could not open database `/etc/vsftpd/vsftpd-virtual-user': Permission denied

データベースファイルに対するファイル権限は良く見えますが、間違っている可能性があります。

Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)

答え1

あなたの指示によると、構成はデータベースファイルを指していません。 (""を/etc/vsftpd/vsftpd-virtual-user.db 使用しています。/etc/vsftpd/vsftpd-virtual-user

答え2

仮想ユーザーを物理ユーザーにマッピングするのに問題があるようです。 vsftpでは、仮想ユーザーはゲストユーザーのように扱われます。guest_enable=YESこれが構成に必要な理由です。

1つの提案は、このマッピングのユーザーを作成することです。それは次のとおりです。

useradd -d /home/ftp virtual

echo guest_username=virtual >> /etc/vsftpd/vsftpd.conf

これにより、仮想ユーザーはvirtualという名前の物理ユーザーにマップされ、そのユーザーは/ home / ftpディレクトリにrootされます。

ちなみに、/etc/vsftpd/vsftpd-virtual-userroot(chmod 600)で読むことができるはずです。

答え3

コメントに答えがあるようです。タレジン

SELinuxがアクセスをブロックする状況が発生する可能性があります。次のコマンドを実行して SELinux が参加していることを確認します。

ls -Z vsftpd-virtual-user.db 

問題を解決するには:

restorecon -v vsftpd-virtual-user.db

関連情報