vsftpd
익명 업로드 및 다운로드가 활성화된 FTP 서버를 설정했습니다 . 제가 겪고 있는 문제는 디렉토리를 업로드할 때 성공적으로 업로드되지만(서버에서 볼 수 있음) 다음에 디렉토리를 확인하려고 할 때 FTP 클라이언트가 빈 디렉토리를 표시한다는 것입니다!
로그인 시 오류가 발생하지 않았습니다 /var/log/vsftpd.log
. 이 pub
폴더(익명 FTP 사용자의 홈 폴더)에도 쓰기 권한이 있습니다. 다양한 구성 옵션을 테스트했지만 아무 도움이 되지 않습니다!
내가 설정한 최신 구성 옵션은 다음과 같습니다.
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirlist_enable=YES
테스트를 위해 방화벽을 한 번 꺼두었지만 아무 것도 바뀌지 않았습니다!
답변1
두 가지 제안:
FTP를 실행하는 사용자 ID에는 vsftpd가 현재 작업 디렉터리로 사용할 "루트" 디렉터리에 대한 "쓰기" 권한이 있습니까? vsftpd에는 쓰기 가능한 작업 디렉터리가 필요하지 않습니다.
파일 에는 지시어
vsftpd.conf
가 있을 수 있습니다hide_file
. 익명 사용자는 이 지시문에 지정된 정규식을 기반으로 하는 파일을 보는 것이 허용되지 않을 수 있습니다.
나는 과거에 vsftpd에서 이 문제를 겪었고, 이 문제를 일으킨 vsftpd.conf 설정이 있었던 것을 기억합니다. 따라서 모든 매개변수와 해당 값을 이해하려면 해당 구성 파일을 주의 깊게 읽어보시기 바랍니다.
답변2
지적해 주신 user81029에게 감사드립니다.
sudo setsebool -P allow_ftpd_full_access 1
mount --bind
SELinux의 /var/ftp/에 폴더를 배치한 후 빈 ftp 디렉토리가 나타나는 문제를 해결했습니다.
답변3
구성이 올바르고 방화벽 문제가 아닌 경우 SELinux일 가능성이 높습니다. 제 경우 대답은 다음과 같습니다.
setsebool -P allow_ftpd_full_access 1
~에서매뉴얼 페이지:
FTP 서버가 로컬 사용자에 로그인하고 DAC가 관리하는 시스템의 모든 파일을 읽고 쓸 수 있도록 하려면 allowed_ftpd_full_access 부울을 켜야 합니다.
답변4
/etc/vsftpd.conf
컬렉션 중
seccomp_sandbox=NO
나를 위해 문제를 해결했으며 다음과 같이 보고했습니다.https://bugzilla.opensuse.org/show_bug.cgi?id=1173275