仮想ユーザーを許可するために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-user
root(chmod 600)で読むことができるはずです。
答え3
コメントに答えがあるようです。タレジン。
SELinuxがアクセスをブロックする状況が発生する可能性があります。次のコマンドを実行して SELinux が参加していることを確認します。
ls -Z vsftpd-virtual-user.db
問題を解決するには:
restorecon -v vsftpd-virtual-user.db