Ubuntu 20.04에 ftp 서버를 설치하는 과정을 다룹니다. vsftpd를 사용했습니다.
1. vsftpd 패키지를 설치합니다.
$ sudo apt-get install vsftpd
2. vsftpd.conf 파일을 열어서
$ sudo nano /etc/vsftpd.conf
다음 내용을 대체합니다.
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/data/ftp/files
write_enable=YES
local_umask=022
dirmessage_enable=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
3. 설정 적용을 위해 vsftpd를 재시작합니다.
$ sudo systemctl restart vsftpd
4. ftp를 위한 사용자를 추가합니다. 암호만 입력해주면 됩니다.
$ sudo adduser ftpuser
webnautes@webnautes-laptop:~$ sudo adduser ftpuser
'ftpuser' 사용자를 추가 중...
새 그룹 'ftpuser' (1001) 추가 ...
새 사용자 'ftpuser' (1001) 을(를) 그룹 'ftpuser' (으)로 추가 ...
'/home/ftpuser' 홈 디렉터리를 생성하는 중...
'/etc/skel'에서 파일들을 복사하는 중...
새 암호:
새 암호 재입력:
passwd: 암호를 성공적으로 업데이트했습니다
ftpuser의 사용자의 정보를 바꿉니다
새로운 값을 넣거나, 기본값을 원하시면 엔터를 치세요
이름 []:
방 번호 []:
직장 전화번호 []:
집 전화번호 []:
기타 []:
정보가 올바릅니까? [Y/n] y
5. 설정파일에 사용자 이름을 추가해야 합니다.
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
webnautes@webnautes-laptop:~$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
ftpuser
webnautes@webnautes-laptop:~$ cat /etc/vsftpd.userlist
ftpuser
6. ftp에서 업로드한 파일을 저장시 사용할 경로를 생성합니다.
추가 하드디스크를 마운트한 경로를 사용하려고 홈디렉토리가 아닌 다른 디렉토리로 사용하도록 했습니다.
sudo mkdir -p /data/ftp
sudo chown nobody:nogroup /data/ftp
sudo chmod a-w /data/ftp
퍼미션이 다음처럼 보여야 합니다.
$ sudo ls -la /data/ftp
webnautes@webnautes-laptop:~$ sudo ls -la /data/ftp
합계 8
dr-xr-xr-x 2 nobody nogroup 4096 5월 3 07:37 .
drwxr-xr-x 3 root root 4096 5월 3 07:37 ..
7. 파일 업로드를 위한 디렉토리를 생성합니다.
sudo mkdir /data/ftp/files
sudo chown ftpuser:ftpuser /data/ftp/files
퍼미션이 다음처럼 보여야 합니다.
$ sudo ls -la /data/ftp
webnautes@webnautes-laptop:~$ sudo ls -la /data/ftp
합계 12
dr-xr-xr-x 3 nobody nogroup 4096 5월 3 07:39 .
drwxr-xr-x 3 root root 4096 5월 3 07:37 ..
drwxr-xr-x 2 ftpuser ftpuser 4096 5월 3 07:39 files
8. test.txt 파일을 추가해봅니다.
$ echo "vsftpd test file" | sudo tee /data/ftp/files/test.txt
webnautes@webnautes-laptop:~$ echo "vsftpd test file" | sudo tee /data/ftp/files/test.txt
vsftpd test file
webnautes@webnautes-laptop:~$ ls /data/ftp/files/
test.txt
9. 이제 다른 pc나 모바일에서 접속 및 파일 업로드를 해보세요.
주의할점은 앞에서 생성한 계정정보를 입력해줘야 FTP 접속이 가능합니다.
참고
https://gaemi606.tistory.com/entry/Ubuntu2004-LTS-vsftpd-%EC%84%A4%EC%B9%98
https://shaeod.tistory.com/936