FTP 서비스를 통해 파일의 권한이 어떻게 동작하는지 확인하는 실습을 진행해보자.

 

먼저, FTP 실습을 위해서 vsftpd 서비스 데몬과 방화벽을 중지시켜야 한다.

 

1) vsftpd 서비스 데몬 설치

 

dnf install vsftpd* -y // 질의에 대한 대답으로 항상 yes

 

2) 방화벽 서비스 중단

 

 

systemctl disable firewalld.service
systemctl stop firewalld.service

firewall-cmd --list-all // 방화벽 서비스 중단 확인

 

방화벽이 정상적으로 중단되면 위와 같은 문구가 출력되는 것을 확인할 수 있다.

 

이제, 본 실습에 들어가보자.

 

현재 /home/sevas 디렉토리의 권한은 700 이며, UID 와 GID 모두 sevas 이다. UID 와 GID 가 동일한 경우 UID 가 우선시되므로, sevas 사용자는 /home/sevas 디렉토리에 대해 rwx 읽기, 쓰기, 접근 권한을 모두 행사할 수 있다.

 

1) /home/sevas/html 허가권 273

/home/sevas/html 디렉토리의 허가권을 273 으로 변경한다. html 디렉토리의 소유자, 그룹은 모두 root 이므로 sevas 사용자는 other 권한만을 얻게 된다. other 권한은 3 값으로, w 쓰기와 x 접근만이 가능하다.

 

sevas 사용자가 /home/sevas 홈 디렉토리 (rwx) /home/sevas/html 디렉토리 (-wx) 에 대해 부여받은 권한이 동작하는 것을 직접 확인해보고자 한다.

 

[ /home/sevas 권한 ]

 

- FTP 접속을 통해 sevas 사용자의 홈 디렉토리인 /home/sevas 디렉토리에 접근 : O (x 권한)

- /home/sevas 홈 디렉토리의 목록 읽기 : O (r 권한)

 

[ /home/sevas/html 권한 ]

 

- sevas 사용자의 홈 디렉토리 하위의 /home/sevas/html 디렉토리에 접근 : O (x 권한)

- /home/sevas 홈 디렉토리 하위의 html 디렉토리 목록 읽기 : X (r 권한)

 

- PC 의 위 경로에 위치하는 index.html 파일을 /home/sevas/html 디렉토리 하위에 복사 : O (w 권한)

 

ls -l 명령어를 통해 /home/sevas/html 디렉토리의 파일 목록을 살펴보면, index.html 파일이 업로드 된 것을 확인할 수 있다.

 

2) /home/sevas/html 허가권 742

 

/home/sevas/html 디렉토리의 허가권을 742 로 변경한다. html 디렉토리의 소유자, 그룹은 모두 root 이므로 sevas 사용자는 other 권한만을 얻게 된다. other 권한은 2 값으로, w 쓰기만 가능하다.

 

sevas 사용자가 /home/sevas 홈 디렉토리 (rwx)  /home/sevas/html 디렉토리 (-w-) 에 대해 부여받은 권한이 동작하는 것을 직접 확인해보고자 한다.

 

[ /home/sevas 권한 ]

 

- FTP 접속을 통해 sevas 사용자의 홈 디렉토리인 /home/sevas 디렉토리에 접근 : O (x 권한)

- /home/sevas 홈 디렉토리의 목록 읽기 : O (r 권한)

 

[ /home/sevas/html 권한 ]

 

- sevas 사용자의 홈 디렉토리 하위의 /home/sevas/html 디렉토리에 접근 : X (x 권한)

->  따라서 현재 작업중인 디렉토리의 위치는 여전히 /home/sevas 디렉토리임을 확인할 수 있다.

 

- /home/sevas 홈 디렉토리 하위의 html 디렉토리 목록 읽기 : X (r 권한)

 

- PC 의 위 경로에 위치하는 index.html 파일을 /home/sevas/html 디렉토리 하위에 복사 : X (w 권한)

-> 업로드된 것 같아보이지만 html 디렉토리로의 접근이 불가능해 ㅠ/home/sevas/html 디렉토리 하위가 아니라, /home/sevas 디렉토리 하위에 복사되었다.

 

3) UID = root, GID = root 인 /home/sevas/html 디렉토리에 대한 권한 예제 (sevas 사용자)

 

4) UID = sevas, GID = sevas 인 /home/sevas/html 디렉토리에 대한 권한 예제 (sevas 사용자)

 

 

 

 

 

 

공부하면서 정리한 내용을 글로 작성하였습니다.

혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. :)

COMMENT