FTP로 접속은 되는데 파일 업로드나 디렉터리 생성이 안 되는 경우, 특히 /var/www/html/
같은 웹 디렉터리에서는 꽤 자주 발생하는 문제입니다. 이런 문제는 대부분 퍼미션(권한), 사용자 소유권, FTP 서버 설정에서 발생하며, 정확한 원인을 파악하면 빠르게 해결할 수 있습니다.
이 글에서는 대표적인 에러 유형부터, 실제로 많이 사용하는 ProFTPD
기준 설정 방법, 그리고 보안이나 방화벽 이슈까지 상세히 다뤄보겠습니다.
1. 대표적인 FTP 오류 메시지 예시
550 Permission denied
553 Could not create file
Error: Critical file transfer error
이런 메시지가 보인다면, 다음과 같은 원인 중 하나일 가능성이 큽니다.
2. 원인별 해결 방법
📌 1) 디렉터리 소유권 문제
웹 디렉터리의 소유자가 웹 서버가 사용하는 사용자 (www-data
)가 아니라면, FTP로 접속은 되더라도 파일을 올릴 수 없습니다.
sudo chown -R www-data:www-data /var/www/html
📌 2) FTP 사용자 그룹 설정 오류
Ubuntu 사용자 계정이 www-data
그룹에 속해 있지 않으면 쓰기 권한이 없습니다.
sudo usermod -a -G www-data ubuntu
변경 후 로그아웃/재로그인 또는 시스템 재시작 필요
📌 3) 퍼미션 부족
/var/www/html
에 그룹 쓰기 권한이 없으면 에러가 발생합니다.
sudo chmod -R 775 /var/www/html
혹은 디렉터리 단위로 조정:
sudo chmod g+w /var/www/html
📌 4) FTP 서버 설정 확인 (ProFTPD)
/etc/proftpd/proftpd.conf
파일을 열어 아래 항목을 확인하거나 주석 처리합니다:
#DefaultRoot /var/www/html/
#User www-data
#Group www-data
수정 후 반드시 재시작:
sudo service proftpd restart
3. 추가 설정: Passive Mode 포트 열기
TP Passive 모드를 사용하는 경우 방화벽(UFW)에 포트를 열어야 합니다:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 60000:61000/tcp
그리고 proftpd.conf
에 아래 내용 추가:
PassivePorts 60000 61000
4. SELinux 사용 중이라면?
SELinux가 활성화된 시스템에서는 FTP를 통한 쓰기가 차단될 수 있습니다.
상태 확인:
sestatus
일시적으로 비활성화:
sudo setenforce 0
영구 변경은 정책 설정을 수정해야 하므로 주의 요망
5. 권한 확인 명령어 꿀팁
ls -al /var/www/html
- 실제 소유자/그룹 및 권한 상태 확인 가능
6. VSFTPD 사용자라면?
VSFTPD를 사용할 경우 설정 파일은 /etc/vsftpd.conf
에 있으며, 다음 항목을 참고하세요:
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
변경 후:
sudo systemctl restart vsftpd
7. 그누보드나 XE 권한 오류가 뜰 때
그누보드 관리자 페이지에서 707, 755 퍼미션 요구 오류가 뜰 경우도, 디렉터리 권한을 FTP 또는 CLI에서 아래와 같이 설정하면 해결됩니다:
sudo chmod -R 707 /var/www/html/data
또는 사용자에 따라 조정:’
sudo chmod -R g+w /var/www/html
8. 보안 측면: FTP 대신 SFTP 고려하기
FTP는 전송 과정에서 패스워드가 평문으로 노출되기 때문에, 가급적이면 SFTP(Secure FTP)를 사용하는 것이 좋습니다.
SFTP는 SSH 기반이므로 기본적으로 포트 22를 사용하며 추가 설정이 필요 없습니다.
마무리 팁
- FTP 파일질라(FileZilla) 같은 클라이언트를 사용하면 권한 오류 로그를 더 쉽게 확인할 수 있습니다.
- 업로드 전후로
ls -l
로 실제 파일 퍼미션 상태를 확인하세요. - 반복되는 오류가 발생한다면 사용자 계정이나 FTP 서버 로그(
/var/log/proftpd/proftpd.log
)를 확인해보는 것도 좋습니다.
👉 FTP 전송 오류는 대부분 ‘접속은 되지만 파일이 안 올라가는’ 상태에서 시작합니다. 위 단계를 하나씩 확인해보면 빠르게 해결할 수 있습니다!
sudo chown -R www-data:www-data /var/www/html/ #소유권을 www-data에 줌
sudo usermod -a -G www-data ubuntu
sudo useradd ubuntu
sudo passwd ubuntu
sudo usermod -g www-data ubuntu
sudo chmod -R g+w /var/www/html
sudo apt-get install proftpd
sudo vi /etc/proftpd/proftpd.conf
#DefaultRoot /var/www/html/
#User www-data
#Group www-data
service proftpd restart
addgroup www-data
sudo usermod -g www-data ubuntu
sudo chmod -R g+w /var/www/html
sudo groupmod -g 777 www-data
chgrp www-data /var/www/html
chmod 775 /var/www/html
그누보드 관리자 설정에서 707 755로 바꿔야 수정 된다고 나올 때도 이렇게 디렉터리 권한 수정해주면 됨
연관된 글 입니다.