본문 바로가기
OS/Linux

[Linux]권한 이해하기

by 알 수 없는 사용자 2023. 7. 14.

안녕하세요. 이쁜이와 멋쟁이의 "BTC_준호" 입니다.

오늘은 리눅스의 권한에 대해 이야기해볼까 합니다. 파일과 디렉터리에 대한 권한, 그리고 이를 어떻게 설정하고 변경하는지를 알아보도록 하겠습니다. 권한이 어떻게 작동하고 어떻게 조절하는지 이해하는 것은 시스템을 보안하고 제어하는 데 매우 중요합니다.


리눅스 권한 체계 이해하기

리눅스에서 각 파일과 디렉토리는 세 가지 주요 권한 설정을 가지고 있습니다.

소유자(User)의 권한, 그룹(Group)의 권한, 그리고 기타 사용자(Others)의 권한입니다.

  1. 사용자(User): 파일 또는 디렉토리의 소유자를 나타냅니다. 소유자는 파일을 생성한 사용자입니다.
  2. 그룹(Group): 특정 작업을 수행하는 사용자 그룹을 의미합니다. 파일은 하나의 그룹에 속하며, 그룹의 모든 사용자는 그룹 권한에 따라 파일에 접근할 수 있습니다.
  3. 기타 사용자(Others): 파일의 소유자도 그룹의 일원도 아닌 모든 다른 사용자를 의미합니다.

    이들 각각에 대해 설정할 수 있는 권한은 읽기(Read), 쓰기(Write), 실행(Execute)의 세 가지가 있습니다.
    따라서 파일 권한은 일반적으로 아래와 같은 형식으로 표시됩니다.
-rwxr-xr-x

예시로 위의 문자열은 파일 권한을 나타내는 10개 문자로 구성되어 있습니다.


첫 번째 문자는 파일 타입을 나타냅니다.

리눅스의 파일은 다양한 타입을 가지며, 이는 해당 파일에 대한 맨 앞의 문자를 통해 확인할 수 있습니다:

기호 설명
- 일반 파일
d 디렉토리
l 심볼릭 링크
s 소켓
p 파이프
b 블록 특수 파일
c 문자 특수 파일

그 다음의 세 그룹의 문자(각 그룹은 3개 문자)는 각각 사용자, 그룹, 그리고 기타 사용자에 대한 권한을 나타냅니다.

r ✔️ ✔️ ✔️
w ✔️
x ✔️ ✔️ ✔️

위 표는 -rwxr-xr-x 권한 설정을 나타냅니다.

사용자는 읽기, 쓰기, 실행 권한이 모두 있고, 그룹은 읽기와 실행 권한이 있으며, 기타 사용자는 읽기와 실행 권한이 있습니다.


권한 확인하기

리눅스에서 파일이나 디렉토리의 권한을 확인하려면 ls -l 명령어를 사용합니다. 이 명령어를 실행하면 각 파일이나 디렉토리에 대한 정보가 아래와 같이 표시됩니다.

-rwxr-xr-x 1 user group 4096 Jul 14 10:10 example.txt

이 라인은 다음을 의미합니다:

  • -rwxr-xr-x : 파일의 권한 설정
  • 1 : 이 파일에 대한 하드 링크의 수
  • user : 파일의 소유자
  • group : 이 파일이 속한 그룹
  • 4096 : 파일의 크기를 바이트로 나타냅니다.
  • Jul 14 10:10 : 마지막으로 수정된 날짜와 시간
  • example.txt : 파일의 이름

권한 변경하기: chmod

리눅스에서는 chmod 명령어를 사용해 파일 권한을 변경할 수 있습니다. 
chmod 명령어는 두 가지 방식으로 사용할 수 있습니다: 절대 모드(숫자를 사용)와 상대 모드(문자를 사용)입니다.

절대 모드에서는 권한을 숫자로 표현합니다. 읽기는 4, 쓰기는 2, 실행은 1입니다. 예를 들어, chmod 754 example.txt 명령은 소유자에게 읽기/쓰기/실행(7=4+2+1) 권한을, 그룹에게는 읽기/실행(5=4+1) 권한을, 그리고 기타 사용자에게는 읽기(4) 권한을 부여합니다.

상대 모드에서는 u(사용자), g(그룹), o(기타 사용자), a(모든 사용자)를 이용해 권한을 변경하며, +(추가), -(제거), =(설정)을 사용하여 권한을 조정합니다. 예를 들어, chmod g+w example.txt는 그룹에 쓰기 권한을 추가하고, chmod o-r example.txt는 기타 사용자의 읽기 권한을 제거합니다.


파일 소유자와 그룹 변경하기: chown, chgrp

리눅스에서는 chown과 chgrp 명령어를 사용해 파일의 소유자와 그룹을 변경할 수 있습니다. 
예를 들어, chown newuser example.txt는 파일 example.txt의 소유자를 newuser로 변경하고, 
chgrp newgroup example.txt는 해당 파일의 그룹을 newgroup으로 변경합니다.


끝으로...

리눅스의 권한 체계는 처음에는 복잡하게 느껴질 수 있지만, 기본 개념을 이해하고 나면 명확하게 이해하고 사용할 수 있습니다. 올바른 권한 설정은 리눅스 시스템의 보안을 강화하는 데 매우 중요하므로, 권한이 어떻게 작동하는지, 그리고 필요에 따라 어떻게 조절하는지 꼭 알아두어야 합니다. 이를 통해 시스템을 효율적으로 관리하고, 데이터를 안전하게 보호할 수 있습니다.

 

이해가 어려운 부분이 있거나 추가로 알아보고 싶은 내용이 있다면 댓글로 언제든 질문해주세요.

감사합니다.

'OS > Linux' 카테고리의 다른 글

외부 접속을 위한 ssh계정 생성 및 권한(sudo)  (0) 2023.08.18
[Liunx]LVM을 사용해 EBS 볼륨 용량 늘리기  (1) 2023.07.19
Linux 시간 동기화  (0) 2023.07.14
[Linux] Swap Memory  (0) 2023.07.07
[Linux]포트 이해하기  (0) 2023.06.26

댓글