RHEL7에서 호스팅되는 vsftp 서버가 있습니다. vsftp 서버에 여러 사용자가 로그인되어 있습니다. 이 VSFTP는 루트가 변경되었습니다. 내 요구 사항은 일부 사용자는 홈 디렉터리에 로그인하고 나머지 사용자는 홈 디렉터리 내의 특정 하위 폴더에 로그인해야 한다는 것입니다. 하위 폴더에 들어가는 사용자는 각자의 홈 디렉토리에 들어갈 수 있어야 합니다.
John의 비밀번호 입력 예:
존:x:1234:123:테스트 계정:/ftp/home/john/./test:/etc/ftponly
위의 구성을 사용하면 John이 VSFTP 서버에 로그인할 때 John은 홈 디렉터리의 "test" 폴더에 배치됩니다. 그러나 "cd .."를 실행하면 "/ftp/home/john/" 폴더에 들어갈 수 없습니다.
내 요청: john은 /ftp/home/john/ 폴더에 들어갈 수 있어야 합니다. 하지만 /ftp/home/은 아닙니다.
vsftpd.conf
내 파일의 내용은 다음과 같습니다.
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_enable=YES
allow_writeable_chroot=YES
dual_log_enable=YES
답변1
/ftp/home/john/./test
유효한 항목 이지만 passwd
여기서 .
가정 한 요점은 의미가 없습니다.
-bash-4.1$ echo $HOME
/home/testuser/./test
-bash-4.1$ pwd
/home/testuser/./test
-bash-4.1$ cd ..
-bash-4.1$ pwd
/home/testuser
-bash-4.1$ cd test
-bash-4.1$ pwd
/home/testuser/test
따라서 사용자의 홈 디렉토리 는 당신이 생각하는 것과 john
다릅니다 . 사용자의 액세스를 허용하려면 홈 폴더를 (또는 그 이상)로 설정해야 합니다. chroot된 사용자(대부분 의 경우)는 집보다 높은 곳에 도달할 수 없습니다./ftp/home/john/test
/ftp/home/john
john
/ftp/home/john
/ftp/home/john
vsftpd