라즈비안에 vsFTPd를 설치하고 설정을 해주고 난 뒤 문제가 하나 생겼다.
오랫동안 사용하던 특정 id로 ftp 접속을 하지 못하는 것이다.
그래서 guest 계정을 하나 만들어서 /etc/vsftpd.conf 에서 계정을 설정을 해주고 난 뒤에
FTP에 들어가보니 잘된다.
되고 안되고 계정의 차이를 아무리 봐도 못찾겠어서 한동안 기본 root 계정인 pi를 사용하다가
이번에 시간이 좀 되서 다시 찾아보니 눈에 띄는 차이가 있었다.
오랫동안 사용하던 FTP에 접속을 못하던 계정은 /home 디렉토리 아래에 계정의 이름으로 되어있는 디렉토리가 없었다.
단순 디렉토리면 하나 수동으로 만들어주면 될텐데 다른 계정들의 홈디렉토리를 보니 이건 시스템이 만들어주는 것들이다.
결국 계정을 삭제해주고 다시 만들어서 root 그룹에 추가를 해주고 나서 테스트 해보았다.
결론은 아무렇지도 않았다는 듯 FTP에 접속이 잘되며
root 계정에 맞게 디렉토리 구조나 권한 등이 삭제 후 따로 설정해주지 않았음에도 잘 적용이 되어있었다.
참고로 강제 FTPs TLC 패시브 모드로 사용하는 설정이고
이 글과 관련하여 등록된 사용자만 접속할 수 있도록
/etc/vsftpd.conf 에서
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list -> 현재의 설정에선 등록된 사용자만 접속 가능한 계정의 내용이 담긴 파일
userlist_deny=NO -> 이 설정 값은 함께 등록해야하며 그렇지 않으면 바로 위 파일 명단이 블랙리스트로 바뀐다.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list -> root 권한으로 상하위 디렉토리로 돌아다닐 수 있는 권한이 있는 계정의 내용이 담긴 파일
allow_writeable_chroot=YES
설정을 넣어준 상태다.
추가:
해당 계정을 삭제 하고 다시 만들어주지 않고 홈디렉토리만 다시 만들어주고 싶어 찾아봤는데
useradd 명령어의 -m 옵션이
-m, --create-home create the user's home directory
라고 나오던데 아무래도 새로운 계정을 생성할 때 쓰는 옵션으로 보인다.
뭘해도 삭제 하기 전의 계정이 이미 있다고 나와 adduser 명령어로도 홈디렉토리만 추가할 수 없었다.