이 질문이 StackExchange에 여러 번 게시되었다는 것을 알고 있지만 어떤 솔루션도 제게 도움이 되지 않았습니다.
저는 우분투에서 vsftpd 서버를 사용하고 있으며 특정 하위 디렉터리에 대한 사용자 액세스를 제한하고 싶습니다(읽기 전용). 내가 찾은 대부분의 솔루션은 사용자의 홈 디렉토리를 변경하면 작업이 수행될 것이라고 말합니다.
usermod -d /home/subdirectory <username>
이전 설정 /etc/vsftpd.conf
:
local_enable = YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
에 사용자 이름을 추가합니다 /etc/vsftpd.chroot_list
.
어쨌든 브라우저를 사용하면 잘 작동합니다. 지정된 홈 디렉터리로 연결되지만 상위 디렉터리에 액세스할 수 없습니다.
문제는 FileZilla를 사용할 때입니다. 홈 디렉터리에 직접 연결되어 있지만 상위 디렉터리(및 그 안의 파일)도 보고 액세스할 수 있습니다.
sftp
또한 edit file /etc/ssh/sshd_config
및 을 사용하여 다른 솔루션을 시도했지만 internal-sftp
그 중 하나도 작동하지 않았습니다.
답변1
나는 다음을 설정하여 이 문제에 대한 해결책을 찾았습니다.
chroot_local_user=NO
vsftpd.chroot_list
시스템 루트 디렉터리에 액세스할 수 없는 사용자를 나열합니다. 이 목록에 없는 사용자는 여전히 루트 디렉터리에 액세스할 수 있습니다.