#FTP(File Transfer Protocol)
통신 방식 | TCP |
통신 포트 | 제어 및 세션 -> 21 데이터 -> 20 |
구조 | Server < - > client |
#vsftpd 설치
yum -y install vsftpd | very secure ftp demon 설치(ftp 서버) |
#ftp 클라이언트 설치
yum -y install ftp | ftp 클라이언트 설치 |
#접속방법
host pc 웹 | ftp://211.183.3.21/ |
윈도우 클라이언트 앱 사용 | 파일질라 클라이언트 |
리눅스에서 ftp 클라이언트 사용 | ftp -> ? 명령어 확인 가능 -> open 주소 |
#리눅스 사용자 생성
useradd 사용자명 | 사용자명 이라는 유저를 생성한다. |
passwd 비밀번호 | 해당 사용자명의 비밀번호를 적용한다. |
vi /etc/passwd | 사용자 파일 리스트를 확인 |
#리눅스 파일, 디렉토리 권한 설정
-각 rwx 세 자리를 2진수로 표기하여 권한을 설정한다.
r, - | read(읽기) |
w, - | write(쓰기) |
x, - | execute(실행) |
예시) ls -al로 확인
-rw-r--r-- 1 root root 11 Dec 21 14:53 test1.txt
- | d or - | 명령어 | 디렉토리와 파일을 나타낸다. |
rwx | --- or rwx | 7 | 사용자의 권한을 나타낸다. |
rw- | --- or rwx | 6 | 사용자가 속한 그룹의 권한을 나타낸다. |
r-- | --- or rwx | 4 | 그 외 나머지 권한을 나타낸다. |
chmod 777 text1.txt로 권한을 주게 된다면 다음과 같이 바뀐다.
chmod 777 test1.txt # 777 => 111 111 111 이므로 rwx rwx rwx
test1.txt라는 파일의 소유자와 소유자가 속한 그룹, 그이외의 사용자들 모두에게 읽기(r) , 쓰기(w) , 실행(x) 권한을 준다.
chmod 642 test1.txt
642 => 110 100 010 이므로 rw- r- - -w-
test1.txt라는 파일의 소유자에게 읽기 쓰기, 소유자가 속한 그룹에 읽기, 그 이외의 사용자들에게는 쓰기 권한을 준다.
모든 사용자는 사용자 이름과 사용자 그룹이 있고, 각 파일 또는 디렉토리가 생성될 때 작성자와 작성자 그룹이 등록된다.
예제)
FTP 서버를 하나 만든다
디렉토리는 /home/ftpuser 로 한다
여기에 test1 파일은 다운로드 가능하고
test2 파일은 다운로드 불가능하도록 만들어라
ftpuser라는 아이디로 ftp서버에 접속하고,
user1은 해당 ftp서버에 접속이 불가능하다.
풀이 과정
-FTP 서버 생성
-FTP 서버에 vsftpd 패키지 설치
-vsftpd에 ftpuser라는 계정을 생성한다.(계정 생성시 /home/ftpuser 폴더가 자동으로 생성)
-test1.txt, test2.txt 파일을 생성(mkdir test1.txt, mkdir test2.txt)
-test1.txt 파일에 권한을 설정한다.(chmod 777 test1.txt)
-vi /etc/vsftpd/ftpusers 파일 수정(user1 추가)
-vi /etc/vsftpd/user_list 파일 수정(user1 추가)
-파일질라 혹은 다른 서버에서 ftp로 접속해서 확인
ftp 서버(211.183.3.121에 ftpuser ip로 접속 및 파일 다운로드)
ftpusers 파일 수정 전 usre1 접속 확인
vi /etc/vsftpd/ftpusers 파일 수정
-user1 추가
vi /etc/vsftpd/user_list 파일 수정
-user1 추가
ftpusers 파일 수정 후 user1 접속 확인