2021-10-03
다중 유저 시스템을 지원하는 리눅스의 경우 해당 유저에 따라 파일을 읽기, 쓰기 그리고 실행하는 권한이 다르다 오늘은 이와 같은 유저별 권한을 확인 및 변경하는 방법을 알아보자.
- 예제(권한 확인)
우선 위는 예제로 사용할 hello.txt의 정보이다. 권한을 확인하는 방법은 "ls -l"과 같은 명령어를 사용해서 해당 파일의 정보를 화면에 출력하면 된다.
그중에서 권한에 해당하는 부분은 -rw-r--r-- 이 부분이다. 이 를 하나하나 살펴보자.
우선 -rw-r--r-- 젤 앞부분에 있는 "-"는 파일의 유형을 나타낸다. 기본 파일의 경우 "-"로 나타나며, 디렉터리일 경우 "d"로 표시되게 된다. 이를 제외하면 rw-r--r-- 가 남게 되는데, 이는 유저별로 나누어지는 3가지 권한 유형이다. 나눠서 살펴보자.
순서대로 나누면 아래와 같이 된다. 여기에서의 r(read) 파일을 읽는 권한 / w(write) 파일을 수정할 수 있는 권한 / x(execute) 파일을 실행할 수 있는 권한이다.
rw- : 첫 번째는 파일의 소유자(user)의 권한이다. 읽기/쓰기(수정) 권한만 가지고 있다.
r-- : 두 번째는 파일의 그룹(group)의 권한이다. 읽기 권한만 가지고 있다.
r-- : 세 번째는 이외의 사용자(other) 권한이다. 읽기 권한만 가지고 있다.
- 예제(권한 변경)
이제 권한을 확인했으니 변경하는 방법을 알아보자. 그전에 이러한 권한들은 숫자로도 표현될 수 있는데
r(4)/w(2)/x(1)/-(0) 이와 같이 나타낼 수 도 있다.
권한을 부여하는 방법은 크게 두 가지이며, 문자로 나타내는 방법과 숫자로 나타내는 방법이 있다.
아래의 코드를 보자.
우선 숫자로 변경하는 방법이다.
권한을 부여하는 명령어는 chmod를 사용한다. 700이라는 의미는 기존에 문자로 표현하면 아래와 같다.
700 = (rwx------) r은 4 w는 2 x는 1 이기 때문에 이들을 모두 합쳐 7이 된다. 즉 7은 해당 파일에 대하여 모든 권한을 가지게 한다라는 의미가 있다. 이외의 그룹과 일반 유저들은 모두 "-"를 주어 합쳐도 0이기 때문에 해당 파일에 대하여 어떠한 권한도 가지지 못한다.
다음은 문자로 변경하는 방법이다.
달라진 부분은 o+rx일 것이다. 여기서의 o는 other을 의미하며, 이외의 사용자이다. +는 권한을 추가한다는 의미이며, 반대로 권한을 제외시키기 위해서는 -를 사용하면 된다. rx는 부여될 권한의 종류이다.
(참고: u = user / g = group / o = other)
메인 이미지 출처 : Photo by Simon Joseph on Unsplash