리눅스 권한에 대해 정리하기 전에 가볍게 Unix와 Linux의 대표적인 회사에 대해서 살펴보자!
리눅스도 Unix 기반이지만 비싼 Unix와 달리 리눅스는 오픈소스 즉, 무료이다.
Unix는 벤더에 종속적이다.
대표적인 3개의 회사의 Unix를 살펴보면 아래와 같다.
- sun의 solaris (현재는 Orcle에서 인수)
- HP의 hp-ux
- IBM의 AIX
core engine이 각 회사별로 차이점이 있으며 하드웨어 벤더에 종속적일 수 밖에 없다.
Linux는 RedHat과 Cent OS가 있는데 이 둘은 쌍둥이라고 보면된다.
하지만 왜 이름이 다를까? 그 이유는 라이센스의 차이가 있기 때문이다.
무료 오픈소스인데 무슨 라이센스?? 라고 의문점을 가질 수 있다.
간단하게 설명하자면 RedHat은 벤더가 있어서 설치를 해주고 문제가 발생하면 해결하고 업그레이드를 해주고 등등 유지보수를 직접해주지만 Cent OS는 설치부터 유지보수까지 본인이 직접해야한다.
즉, Cent OS를 설치하게 되면 모든 책임은 본인이 진다고 생각하면 된다.
만약, 본인이 솔루션 회사에 다니거나 인프라까지는 책임지지 않겠다라고 한다면 고객사에게 서버와 tomcat 설치해달라고 하자.
Cent OS를 직접 설치해주지 말자! 설치를 해준다면 본인이 모든 것을 책임져야 한다.
이것은 회사나 상황에 따라 다르니 참고만 하자!
리눅스의 계정과 권한
이제 리눅스 계정과 권한에 대해서 살펴보자
리눅스는 root 계정, 계정 사용자(=소유자), 계정 사용자를 묶어놓은 그룹, Anonymous(익명자)로 나눌 수 있다. root 계정은 관리자 급으로 모든 것을 다 할 수 있다.
계정 사용자는 소유자라고 부르며 Owner를 뜻한다. 리눅스에서 명령어로 'who am i'라고 입력하면 나오는 그 계정이다.
아래 표는 그룹과 사용자를 보여주는 예시다.
하나를 살펴보면 econtract라는 그룹에 tomcat과 webtobe라는 계정 사용자가 있다.
그룹명 | econtract | ecm | web |
계정 사용자(소유자) | tomcat | AA | person1 |
webtobe | BB | person2 |
리눅스나 유닉스는 window에서 사용하는 것처럼 파일을 실행하고 읽고 쓰는 것이 자유롭지 않다.
즉, 권한이 매우 중요하다는 의미이다.
리눅스에서는 읽기, 쓰기, 실행 3가지 권한이 있다.
구분 | 권한 확인용 | 권한 부여용 |
읽기(Read) | r | 4 |
쓰기(Write) | w | 2 |
실행(Excute) | x | 1 |
권한 확인하는 방법
리눅스 창에서 ls -al 명령어로 파일 리스트를 보게 되면 해당 파일이나 폴더의 권한을 볼 수 있는데 여기서 보이는 권한들은 drwxr-xr-x 이런식으로 보인다.

이렇게 보여지는 권한을 어떻게 보느냐!
drwxr-xr-x 2 root root 4096 Apr 22 16:59 conory
파일Type 퍼미션정보 링크수 소유자 소유그룹 용량 생성날짜 파일이름
d는 디렉토리, I는 링크파일, -는 일반파일 뜻한다. 이 외에도 더 있다.
권한을 보기 위해서는 앞글자(파일type)를 제외하고 뒷부분(퍼미션 정보) 부터 보면 된다.
권한이 3가지 이기 때문에 rwx, rw-, r-x, -wx, --x 이런식으로 나타나게 된다.
권한이 어떻게 부여됐는지 또 권한을 부여할 때의 순서는 O(Owner), G(Group), A(Anonumous)로 소유자, 그룹, 익명(공개) 순서이다.
즉 여기서 보이는 drwxr-xr-x는 d rwx r-x r-x 이렇게 뜯어보면 된다.
d 디렉토리이
소유자는 rwx로 읽기, 쓰기, 실행 권한
그룹은 r-x로 읽기, 실행 권한
익명(공개)는 r-x로 읽기, 실행 권한
이렇게 해석하면 된다.
맨 마지막 줄에 있는 readme.txt 파일의 -rw-r--r-- 권한을 보면
- 일반 파일이며
소유자는 rw- 읽기, 쓰기 권한
그룹은 r-- 읽기 권한
익명(공개)는 r-- 읽기 권한
이렇게 해석하면 된다.
여기까지 권한을 확인하는 방법이였다.
권한 부여하는 방법
이제 권한을 부여하는 방법을 살펴보자
권한을 변경하는 여러가지 방법이 있지만 가장 간단한 방법은 chmod 명령어를 사용하는 것이다.
chmod [변경될 퍼미션값] [변경할 파일]
* 디렉토리의 경우 "-R" 옵션을 사용하면 하위 디렉토리의 모든 디렉토리및 파일의 퍼미션이 변경된다.
여기서 변경되는 퍼미션 값을 구해야하는데 위의 표에서 권한 부여용으로 읽기는 4, 쓰기는 2, 실행은 1이라고 표시가 되어있다. 즉, 해당 값들로 계산을 해서 권한을 부여해주면 된다.
계정 소유자에게는 읽기, 쓰기, 실행 권한을 그룹과 익명(공개)에게는 읽기, 실행 권한만을 부여한다면
rwx 이므로 4 2 1 -> 4+2+1 = 7
r - x 이므로 4 0 1 -> 4+0+1 =5
권한 확인하는 순서와 동일하게 권한 부여하는 순서도 계정 소유자, 그룹, 익명(공개)이기 때문에 명령어를 아래와 같이 입력하여 권한을 부여해주면된다.
chmod 755 test.text
예시)
.ash_history 파일의 권한을 소유자에게 읽기, 쓰기, 실행 권한을 그룹과 익명(공개)에게는 읽기, 실행 권한을 부여하도록 해보겠다.

chmod 755 .ash_history
명령어를 입력한 후 ls -al 명령어로 권한을 확인해보면 권한이 잘 부여된 것을 확인할 수 있다.

'TIL > Linux, Unix' 카테고리의 다른 글
[Linux] 리눅스 명령어 연습 사이트 (0) | 2022.12.07 |
---|