가상 사용자를 허용하기 위해 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