인공지능 개발일지

[Linux] 리눅스 접근권한 관리 본문

개발 지식/운영체제(OS)

[Linux] 리눅스 접근권한 관리

Prcnsi 2021. 6. 1. 23:39
728x90

안녕하세요! 이번 시간에는 리눅스의 권한관리에 관해서 깔끔하게 끝내봅시다.

 

 


 

1. 대상의 종류

   리눅스의 모든 것들은 디렉터리와 파일로 나뉘고 기호는 아래와 같습니다.

기호 의미
디렉터리
- 파일

   

사용자의 권한은  가지로 나눌 수 있습니다.

권한 종류 의미
r (read) 읽는 권한(4)
w (write) 쓰는 권한(2)
x (excute) 실행 권한(1)
권한 없음

권한 옆의 숫자는 각각의 권한 종류를 구분하는 숫자입니다.

 

 

 

2. 읽는 법

  ls명령어 중 자세히 보기 옵션(-l)을 사용하면 아래와 같이 권한을 볼 수 있습니다.

ls 자세히 보기 옵션

  위 사진 중에서 drwxr-xr-x를 예제로 알아봅시다. 

 

  이를 읽는 방법은 1 3 3 3 자리씩 끊어서 읽으면 됩니다.

  제일 첫 번째 자리에는 디렉터리와 파일을 구분하는 자리입니다.

 

  그렇다면 위 예제에서는 첫 번째 자리가 d니까 디렉터리임을 알 수 있습니다.

 

  다음으로 3 3 3 의 의미는 아래와 같이 세자리씩 끊어서 보란 뜻입니다.

 

 d/rwx/r-x/r-x

 

  왼쪽부터 차례로 소유자 그룹 기타사용자의 권한을 나타낸 것이지요.

 

  그렇다면 예제에서는 rwx(소유자) r-x(그룹) r-x(기타 사용자)로 소유자는 모든 권한을 갖고

  그룹과 기타사용자는 읽고 실행할 수 있는 권한을 가진다는 뜻입니다.

 

  이와 같이 1 3 3 3 으로 끊어서 해석하면 됩니다.

 

 

3. 변경하는 방법

 

      chmod [바꿀 설정] [대상]

   위와 같이 정말 간단하게 사용할 수 있습니다.

   이를 위에서 배운 rwx와 같이 기호로 나타낼 수도 있고,숫자로 나타낼 수도 있습니다.

     

     1)기호

      이를 사용하기 위해 간단하게 사용자를 분류합니다.

사용자 유형 의미
u (user) 소유자의 권한
g (group) 그룹의 권한
o (others) 기타 사용자의 권한
a (all) 전체 사용자의 권한

       

 

       위 기호와 관리자 종류(rwx)를 이용하여 아래와 같이 [바꿀 설정]을 표현할 수 있습니다.

chmod [(사용자유형)±권한 종류] [대상]

     

      (단,사용자 유형은 생략할 수 있고 사용자 유형과 권한 종류 둘다 여러개를 사용하고 싶을 땐

      ug,rwx등과 같이 붙여서 사용하면 됩니다)

 

      예시로는 exam.c라는 파일이 있을 때 실행과 읽을 권한을 주고 싶다면   chmod +rx exam.c 를 하면 됩니다.

    2)숫자

     숫자로 환산하기를 이해하기 위해서 알아야할 것은 간단한 숫자 정의인데요.

     위에서 r(4),w(2),x(1)를 소개 했는데 이와 관련된 것입니다.

     모든 대상은 디렉터리와 파일로 나뉜다고 했는데요.디렉터리와 파일의 기본 값은 아래와 같습니다.

       + 디렉터리에서 "실행" 권한은 디렉터리 내에 있는 파일을 열고 접근할 수 있는 권한을 의미한다. 

       + 보안적인 이유로 리눅스에서 파일의 기본 권한은 읽기쓰기만 허용되고, 실행 권한은 명시적으로 추가해야만 주어진다.

       + 디렉터리에 실행 권한이 있으면, 그 디렉터리로 들어가거나 (cd 명령) 그 디렉터리 내의 파일을 열 수 있다

 

  • 디렉터리 :  777 (rwxrwxrwx)
  • 파일 :  666 (rw-rw-rw-)
        

    위의 777 666 이라는 숫자의 의미는 rwx에 각각 정의된 값을 더한 것입니다. 

    그래서 디렉터리는 기본 값이 모두 rwx=4+2+1=7이 되는 것이죠.

    그럼 이 권한을 숫자로 바꾸려면 위의 기본 값에서 없앨 권한 숫자를 뺀 값을 입력하면 됩니다.

 

chmod  ( 소유자권한 )( 그룹권한 )( 기타사용자권한 )  (파일/폴더명)

 

 

4. UMASK

기본 권한을 설정하는 명령어로, 새로운 파일이나 디렉터리가 생성될 때 디폴트 권한에서 어떤 권한을 제거할지 결정합니다. umask는 파일이나 폴더의 권한을 직접 변경하지는 않고, 그 기본값에서 어떤 권한을 없앨지 설정하는 역할.

  • umask의 적용 범위: 현재 세션/현재 사용자의 환경에만 적용된다. 즉, umask는 시스템 전체가 아니라 현재 쉘 세션 또는 사용자의 로그인 환경에서만 유효합니다. . 쉘을 새로 시작하면, 이전에 설정한 umask 값은 다시 기본값으로 돌아간다.
umask  (소유자에게 없앨 권한)(그룹에게 없앨 권한)(기타 사용자에게 없앨 권한)  (대상)

 

 

   1)특수 권한

     특수 권한들은 보안과 관련된 중요한 기능을 제공, 주로 시스템 관리자가 파일/디렉터리에 세밀한 접근 제어를 설정할 때 사용

      추가적으로 권한을 숫자로 표기하는 chmod나 umask나 권한은 모두 "세 자리"의 숫자로 표기했는데  

      사실 이 앞에는 특수 권한을 설정할 수 있는 한 자리가 생략되어 있습니다.

      한 마디로 기존 세 자리 앞에 아래의 숫자를 붙여 특수 접근 권한을 설정할 수도 있다는 것입니다.

 

특수 권한 종류 해당 숫자
Set UID(유저 아이디) 4
Set GID(그룹 아이디) 2
스티키 비트 1

 


 

 

감사합니다.

 

 

 

728x90