Chrooted VSFTPD에서 하위 디렉터리를 종료하고 기본 디렉터리로 들어가는 방법은 무엇입니까?

Chrooted VSFTPD에서 하위 디렉터리를 종료하고 기본 디렉터리로 들어가는 방법은 무엇입니까?

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/johnjohn/ftp/home/john/ftp/home/johnvsftpd

관련 정보