검색을 해보면 복잡하게 설명된 블로그가 많다.


CentOS 공식 위키에서 제공하는 스크립트를 사용하면 아주 편리하게 설정이 가능하다.


https://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users


위의 문서에 패키지 설치는 오타가 있다.


yum -y install vsftpd db4-utils


config 실행

vsftpd_virtual_config.sh


방화벽 설정

패시브 모드를 기본으로 설정하게 되어 있으로 해당 포트를 열어준다.

64000:65535


사용자 추가

vsftpd_virtualuser_add.sh


추가한 사용자로 접속을 해본다.


여기까지는 잘되는데 문제는 로컬 사용자를 같이 사용하고 싶은 경우이다.


config스크립트를 살펴보면 /etc/vsftpd/denied_users 파일에 접근제한용 운영계정과

로컬 사용자 계정 정보가 모두 들어간다.


사용할 사용자 계정이 localuser 라면

vim /etc/vsftpd/denied_users

localuser 삭제


/etc/vsftpd/users 에서

cp  my_ftp_virtual_user localuser

vim localuser

local_root=/home/localuser


기본 vsftpd 인증은 /etc/pam.d/vsftpd 파일이고

config를 실행하면서 생긴 파일은 /etc/pam.d/ftp파일이다.


ftp 파일을 수정하자.


기존

auth    required pam_userdb.so db=/etc/vsftpd/accounts
account required pam_userdb.so db=/etc/vsftpd/accounts


수정

#%PAM-1.0

# virtual users

auth    sufficient pam_userdb.so db=/etc/vsftpd/accounts
account sufficient pam_userdb.so db=/etc/vsftpd/accounts
#Local users
auth    include    vsftpd
account    include   vsftpd


이제 로컬 유저와 가상 유저 모두 사용가능하다.