vsftpd-local_root = / var / www / sites / $ USER가 해석되지 않습니까?


11

FTP 서버에 연결하려고하면 "500 OOPS : 디렉토리를 변경할 수 없습니다 : / home / $ USER / public_html"

  • $ USER를 에코 할 때-올바른 사용자 이름을 얻습니다.
  • 내 /etc/vsftpd.conf 내에서 $ USER가 해석되지 않는 것 같습니다.
  • "local_root = / var / www / sites / $ USER"를 제거하면 모든 것이 원활하게 작동합니다.

vsftpd 2.2.2 및 Ubuntu 10.04.1 LTS 릴리스 : 10.04 코드 이름 : lucid를 실행 중입니다.

답변:


21

사용해야 할 것은 user_config_dir과 local_root의 결합입니다. 기본 구성 파일 /etc/vsftpd/vsftp.conf에는 다음과 같은 항목이 있습니다.

chroot_local_user=YES
user_config_dir=/etc/vsftpd/users

해당 디렉토리 (/ etc / vsftpd / users) 내에는 사용자와 이름이 같은 구성 파일 (귀하의 경우 $ USER)이 있으며 해당 파일 내에는 다음이 있습니다.

local_root=/var/www/sites/USER
dirlist_enable=YES
download_enable=YES
write_enable=YES

... 여기서 USER는 실제 이름 (말 그대로 USER 또는 $ USER가 아님)입니다.


2
여기서 중요한 패스는 use :입니다. user_sub_token=$USER$ USER 변수가 사용 가능한 값을 갖기 때문에 원래 포스터 구성이 작동합니다. 다른 답변에서 내 의견을 참조하십시오.
user3450548

5

다음을 설정해야합니다 user_sub_token.

user_sub_token=$USER
local_root=/var/www/sites/$USER

2
이것이 실제 실제 솔루션이라는 재미, 원래 포스터가 원했던 것은 실제로 적용 가능했습니다. 제안 된 다른 예제에서도 사용할 수 있지만을 활성화 할 필요는 없습니다 user_config_dir. 취향에 따라 할 수 있거나 할 수 없습니다. 여기서 중요한 패스 는 conf 내부에서 사용할 수있는 것으로 var user_sub_token=$USER를 채우는 $USER것입니다. user_sub_token매뉴얼 페이지 의 설명을 참조하십시오. "local_root에 user_sub_token이 포함 된 경우에도이 옵션이 적용됩니다."
user3450548
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.