우분투 리눅스

[ubuntu linux] 우분투 ftp 서버 세팅 (Vsftpd)

U-learner 2023. 3. 31. 15:11
반응형

 매번 작업을 하면서도 시간이 지나면 계속 까먹는 내 기억력을 탓하며, [ubuntu linux] 우분투 ftp 서버 세팅 (Vsftpd) 에 대해서 자세히 기록하려 합니다. 대부분 서버세팅에서 애먹는 것이 퍼미션과 사용자 그룹인데요, 이것도 같이 알아보겠습니다. 그럼 시작해 볼까요?

 

[목차] 
1. user ID생성
2. ftp 폴더 생성
3. 퍼미션 / 그룹설정
4. ftp user ID 등록
5. ftp 접속 후 파일 업로드 및 다운로드

 

1. user ID생성 및 Password 설정

user ID생성시 쓰는 명령어는 useradd입니다. 일반적으로 useradd jpg 이렇게 명령어를 써도 문제가 되지는 않습니다. 하지만 이 ID의 사용용도는 ftp, mysql, apache에 사용 될 것이기에, 꼭 -m 옵션을 사용해 줘야 합니다. 

 

useradd ID와 useradd -m ID의 주요 차이점은 사용자의 홈 디렉토리를 생성하는가 안하는가 입니다. -m옵션 사용시 사용자의 홈 디렉토리를 만들어 줍니다.

 

 

-m 옵션이 없으면, 홈 디렉토리가 없음으로 사용자가 로그인을 시도하거나, 응용 프로그램이 사용자의 특정 파일에 액세스 하려고 할때 문제가 발생할 수 있습니다. 실제로 워드프레스 홈페이지 구축을 하는 도중 막히는 부분을 저도 경험 했습니다. 그렇기에 user ID생성시 꼭 -m 옵션을 명령어로 실행하시길 바랍니다.

useradd -m jpgpng(생성 아이디)
passwd jpgpng

2. FTP 사용자 폴더 생성 (웹페이지 폴더)

ftp 사용자 폴더 생성시 유의사항은 결국 여러개의 홈페이지 운영을 고려해야 한다는 것입니다. ftp 서버 구축 이유가 파일을 보관하는 목적이 있을 수 있지만 홈페이지 제작시 파일 업로드, 다운로드가 된다는 것이 핵심이겠지요

 

 

저의 경우는 여러개의 워드프레스 블로그 및 홈페이지를 운영하고 있습니다. 그러다보니 폴더 배열 및 아이디 정리가 매우 중요합니다. 자체적으로 규칙을 가지고 폴더를 만듭니다.

- /var/www/"아이디폴더"/html  : 아이디 폴더는 하나의 사이트와 같습니다. 

blog폴더 / daily폴더 / study폴더 / car폴더 등등.. 각 테마에 맞게 폴더를 만들어서 서브 도메인으로 연결해서 관리합니다.

 

서브도메인은 blog.toylee.net, daily.toylee.net, study.toylee.net 이런 방식 입니다. 서브 도메인 세팅방법은 다른 글을 참고해주세요

 

mkdir로 폴더를 새로 생성해주고, 메인이 된 html폴더까지 만들어 줌으로 디폴트 폴더 구성이 완료됩니다.

cd /var/www
mkdir jpgpng
cd jpgpng
mkdir html

3. 퍼미션 / 그룹설정 및 사용자 추가 

우리가 ftp서버에 접속해서 파일을 업로드 하기 위해서는 꼭 chmod 명령을 통해 폴더에 사용권한을 지정해줘야 합니다. 처음 공부할때 굉장히 헷갈렸던 기억이 있는데요, 사실 어렵지 않습니다.

 

 

서버에서 모든 권한을 가진 관리자 id는 root 인데요, root가 우리에게 useradd를 통해 아이디를 만들어 주었습니다. 그 만들어준 아이디가 저는 jpgpng인데요, root에게 권한을 jpgpng가 달라고 요청 하는 행위가 chmod입니다. 

 

" jpgpng 폴더에 내가(ID:jpgpng) 접속해서 업로드하고 다운로드 할 수 있게 권한을 주세요"

-> "chmod -R 775" 이런느낌..

사실 여기에는 나뿐 아니라 내가 속한 그룹, 모든사람까지 권한을 설정합니다. 자세한 내용은 퍼미션 글을 보시고 이해하신 후 다시 돌와서 보시길 바랍니다. 

 

현재로 지금 필요한 것은 "나"랑 "그룹"까지 "읽기/쓰기/실행" 설정해서 775로 명령어를 작성합니다.

-R 옵션은 "하위에 있는 폴더까지 다 적용해줘" 이기에 매번 붙여서 사용합니다.

 

 

여기서 궁금한 점이 생길 수 있는데요, 그럼 chown 그룹 설정은 왜 하는걸까요?

결론부터 말하면 www-data:www-data로 폴더에 그룹설정을 해둬야 워드프레스 사용시 플로그인 설치 및, 스킨설치를 제한없이 사용가능합니다. 이 내용은 워드프레스 설치 글에서 자세히 다루겠습니다.

※ 지금 ftp서버 세팅에 있어서 이 설정은 굳이 안하셔도 됩니다.

chown -R www-data:www-data jpgpng
chmod -R 775 jpgpng
ll

 

4. ftp 아이디 등록

기존에 생성한 아이디를 vsftpd 서버 세팅시 생성한 vsftpd-users에 추가해 줌으로 ftp에 접속 할 수 있습니다. 

경로는 /etc 에 있으며, 설정 완료 후 vsftpd를 재시작 해줍니다. (굳이 재시작 안해도 되긴하네요)

cd /etc
vi vsftpd-users
i 누른 후 jpgpng
esc 누른 후 :wq 엔터
systemctl restart vsftpd

 

 

5. ftp접속 (FileZilla프로그램)

ftp설정이 끝났습니다. 이제 접속을 해볼건데요, 파일질라 프로그램을 다운받아서 사용하겠습니다.

 

파일질라 다운로드

 

호스트에 서버주소, 아이디, 패스워드를 작성 후 빠른 연결(접속) 해줍니다.

디폴트 경로로 설정한 html 폴더를 볼 수 있습니다. 권한(퍼미션)은 775로 되어 있습니다.

 

 

파일 업로드 / 다운로드가 되는지 확인합니다. 권한 설정이 안되 있으면 안됩니다.

 

 

 

 

이렇게 [ubuntu linux] 우분투 ftp 서버 세팅 (Vsftpd) 을 해보았습니다. 정리해보니 막상 어렵지는 않지만, 오랜만에 하면 이상하게 기억이 안나더군요.. 다들 열심히 공부하시고, 실무에 잘 적용하세요.

감사합니다.

반응형