본문 바로가기
자격증 공부/정보보안기사

[정보보안기사] 시스템 보안 #3 리눅스 파일 또는 디렉터리 권한

by 인성패밀리 2022. 11. 9.
반응형
 

[정보보안기사] 시스템 보안 #2 윈도우와 리눅스의 차이점 / 리눅스를 다루기 위한 기본 지식1 파

시스템 보안은 운영 체제를 잘 다룰 수 있는지 물어보는 것 같습니다. 운영체제(OS: Operating System)는 컴퓨터를 편리하고 효과적으로 사용하기 위해서 여러 프로그램들이 모여있는 것입니다. 윈도

c-i-s.tistory.com

이전에 리눅스에서 파일을 다룰 때 권한에 대해서 이야기를 했습니다. 소유자의 권한/그룹 권한/그 외 사용자의 권한 이 순서대로 권한이 표시되어 있었습니다.

 

윈도우와 리눅스 모두 파일에 대해서 권한이 중요하지만 리눅스가 특히 더 중요한 것 같습니다. 운영체제를 사용하는 목적이 다르기 때문에 생기는 일 같습니다. 윈도우는 보통 개인이, 리눅스는 주로 서버로 사용이 되죠.

 

서버로 사용이 된다는 말은 다수의 사용자가 접근이 가능하다는 말이 됩니다.

 

다수의 사용자가 접근이 가능하다면 악의적이든 아니든 이상한 행동의 가능성이 높아집니다.

 

때문에 악의적인 공격 또는 의도치 않은 공격을 모두 대비해야 합니다.

 

그 첫 번째로 파일 또는 디렉터리의 권한을 설정하는 방법을 알아보도록 하겠습니다.

 

우선 이런 구조를 가진 디렉터리가 있다고 가정해보겠습니다.

다른 사용자 2명을 만들어보겠습니다.

한 명은 현재 유저인 kali와 같은 그룹

다른 한 명은 다른 그룹에 속해있다고 가정해보겠습니다.

 

우선 자신의 그룹을 알아야 같은 그룹을 만들어줄 수 있습니다.

id 명령어를 사용하면 자신의 uid와 gid를 알 수 있습니다.

 

uid는 자신의 아이디 번호이고 gid는 그룹의 id입니다. uid는 각 계정마다 다르며 gid는 번호가 같으면 같은 그룹에 속합니다.

 

두 명의 유저를 만들겠습니다.

user1은 gid -> 1000

user2는 gid -> 2000

 

useradd 명령어를 사용하여 만들 수 있습니다. root 권한의 명령어라 sudo를 사용해야합니다.ㅎ

 

$ sudo useradd user1 -g 1000
$ sudo groupadd -g 2000 test_group
$ sudo useradd user1 -g 2000

 

gid 2000이란 그룹은 없어서 groupadd 명령어로 추가했습니다.

 

유저를 만들기만하면 안됩니다. passwd 명령어로 비밀번호를 설정해야합니다.

 

이제 다시 이 그림에서

dir1은 gid 1000번만 접근 가능 다른 사용자는 불가, 기본적으로 만든 사람은 접근이 가능해야겠죠?

dir2는 1000 그룹은 접근이 불가능, 2000번 그룹만 접근 가능 소유자 접근 가능 하도록 만들어보겠습니다.

 

이때는 chmod 명령어가 필요합니다. 이 명령어는 권한을 변경할 수 있는 명령어입니다.

 

chmod 764 file

-> 이런식으로 권한을 수정할 수도 있습니다.

-> 예를들어 rwxr-xr-x일 때 755라고 합니다.

-> 세 자리씩 끝어서 rwx는 binary로 111입니다. 그러면 7, r-x는 binary로 101 그러면 5 때문에 755라는 숫자가 나온 것입니다.

-> 764라면 권한이 rwxrw-r--입니다.

-> 앞에서부터 세 자리씩 소유자 권한 / 그룹 권한 / 그 외 사용자 권한입니다.

-> 764 라면 소유자는 읽고 쓰고 실행 권한이 있고, 그룹 권한은 읽고 쓰는데 실행 못함, 그 외 사용자들은 읽는 것 밖에 안됩니다.

 

이렇게 숫자를 가지고 파일 또는 디렉터리에 권한을 설정하는 방법이 있고

 

또 다른 표현이 있습니다.

chmod u+x, g+w, o-r file

-> 이 표기법은 현재 권한에 추가 또는 삭제하는 것입니다.

-> u는 소유자, g는 그룹, o는 그 외를 의미합니다.

-> +는 권한을 추가한다는 의미, -는 권한을 뺐는다는 의미입니다.

-> r은 읽기, w는 쓰기, x는 실행 권한입니다.

-> 지금 명령어는 소유자는 실행권한을 추가하고 그룹은 쓰기 권한 추가, 그 외 사용자는 읽기 권한을 뺐는 것입니다.

 

이제 권한을 설정하고 권한을 테스트 해보겠습니다.

기본 권한은 750 으로 설정하였습니다.

$ chown :test_group dir2

또한 위 명령어로 dir2 디렉터리의 소유 그룹을 test_group으로 변경하였습니다.

chown 은 소유자, 소유 그룹을 변경할 수 있습니다.

 

이제 su 명령어로 다른 사용자에 접속하여 접근하도록 해보겠습니다.

user1의 사용자는 dir2에 접근이 불가능 한 것을 볼 수 있습니다.

 

이번에는 user2로 접근해보겠습니다.

역시나 dir1에는 접근이 불가능하고 dir2에 접근이 가능한 것을 볼 수 있습니다.

 

이렇게 파일 또는 디렉터리의 권한을 자신이 적절하게 설정할 수 있습니다.

반응형

댓글