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이것이 구성에 필요한 이유입니다.

한 가지 제안은 이 매핑에 대한 사용자를 생성하는 것입니다. 그것은 다음과 같습니다:

useradd -d /home/ftp virtual

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

그러면 가상 사용자가 virtual이라는 실제 사용자로 매핑되고 해당 사용자는 /home/ftp 디렉터리로 루트가 지정됩니다.

참고로 /etc/vsftpd/vsftpd-virtual-user루트( chmod 600 )에서 읽을 수 있어야 합니다.

답변3

댓글에 답변이 달린 것 같네요탈레진.

SELinux가 액세스를 차단하는 상황이 발생할 수 있습니다. 다음 명령을 실행하여 SELinux가 참여하고 있는지 확인하십시오.

ls -Z vsftpd-virtual-user.db 

문제를 해결하려면 다음을 실행하세요.

restorecon -v vsftpd-virtual-user.db

관련 정보