리눅스는 여러 명의 사용자가 하나의 시스템에 접근해서 사용하는 멀티유저 OS이다. 그래서 자원을 여러 사람들이 공유할 수 있는 장점이 있지만, 시스템의 중요한 파일들을 많은 사람들이 접근할 수 있다는 보안 상 취약점이 들어날 수 있게된다!
그래서 리눅스는 각각의 파일들마다 읽고, 쓰고, 실행할 수 있는 권한을 부여한다.
먼저 리눅스에서는 r : 읽다, w : 쓰다, x : 실행하다 로 표현한다. 예를 들어서 한 파일에 rw- 라는게 부여되어 있으면 이 파일은 읽고 쓸 수 있는 파일인 것이고, —x로 되어 있으면 읽고 쓸 수 없고 실행만 시킬 수 있다는 뜻이다.
그리고 이를 또 8진수로 표현하여 사용한다.
만약 rw- 라면 6, -w- 라면 2, r-x라면 1 이런 식으로 사용한다.
이렇게 만들어진 권한을 이제 사용자 별(?)로 부여해준다!
사용자는 Owner(소유주), Group(소유주가 속한 그룹), Other(다른 사용자) 세 가지로 순서대로 구분된다.
표로 나타내면 다음과 같다.
그렇다면 예시를 보자
file1의 권한은 -rw-rw-r—로 되어있다. 이 뜻은 무엇일까? (참고로 맨 앞은 파일 유형이다. ‘-’는 일반 파일, ‘d’는 디렉토리)
먼저 소유주에 대해서는 읽고 쓸 수 있다. 그리고 소유주가 속한 그룹도 마찬가지로 읽고 쓸 수 있다. 마지막으로 다른 사용자는 쓰지 못하고 읽기만 할 수 있다! 그렇다면 권한을 바꿀 수 없을까?
권한은 chmod 명령어를 통해 바꿀 수 있다.
chmod [권한] [변경할 파일]
권한은 개별단위로 부여하는 방법과 위에서 배운 숫자로 구분하는 방법이 있다.
개별단위 변경은 권한을 지정할 대상, 부여할지 제외할지, 권한 순으로 작성하면 된다.
권한을 지정할 대상은 u(사용자), o(다른 사용자), g(그룹), a(모두) 이고 부여할지 제외할지는 ‘+’와 ‘-’로 구분한다. 그리고 뒤에 권한은 위에서 배운대로 작성하면 된다.
예시를 들어보면, file1을 모두가 다 읽고 쓸 수 있게한다면
chmod a+rw file1
로 입력한다!
참조
리눅스 퍼미션(Permission)사용 방법
리눅스 권한 관리 설정 (chmod, chown, chgrp )