본문 바로가기
IT/LINUX

리눅스 권한과 소유권 . 숫자모드와 문자모드

by SidePower 2020. 8. 20.

리눅스를 사용하기 위해서는 
반드시 알고 있어야 되는 개념이 있습니다.

리눅스 권한과 소유권

바로 파일(file)과 디렉터리(directory)에 대한 권한과 소유권이에요.

제목 그대로 개념 자체는 쉬워요.ㅋ

그럼에도 불구하고 업무중에 가끔씩 같은 그룹인 거 같은데

왜 내 계정으로 수정을 못하지? 하는 질문에 막히는 경우가 있더라고요. ^^;;

그래서 꼭 알고 넘어가야 될거 같아서 나름대로 간단하게 정리합니다.

ls -l 명령어로 해당 디렉토리 안의 내용을 보면 앞부분에 권한에 대한 정보가 있어요.


        권한           소유자   그룹     size           날짜           이름

drwxr--r-- owner1 group1 1234 Mar 28 2020 FOLD1 ------- ①

drwx------ owner1 group1 1234 Mar 28 2020 FOLD2 ------- ②

drwxr-xr-x owner1 group1 1234 Mar 28 2020 FOLD3 ------- ③

drwxrwxrwx owner1 group1 1234 Mar 28 2020 FOLD4 ------- ④

-rwx------ owner1 gruop1 345  Mar 28 2020 File1 ------- ⑤

-rwxr---w- owner1 gruop1 345  Mar 28 2020 File2 ------- ⑥

-rwxrw-r-x owner1 gruop1 345  Mar 28 2020 File3 ------- ⑦

-rwxrwxrxx owner1 gruop1 345  Mar 28 2020 File3 ------- ⑧


위를 보면 파일이나 디렉토리 모두 소유자는 owner1이고 그룹은 group1 이네요.

앞부분의 10자리가(노란색) 바로 권한에 대한 정보입니다.

자세히 보면

첫번째 자리는 파일유형입니다. d 와 - 가 보이 시조.

파일유형 종류 


d : 디렉터리
- : 파일
l : 링크 파일
b : 블록 파일
c : 캐릭터 디바이스
p : named pipe
s : socket 

두번째 자리부터 열번째 자리까지 총 9자리가 권한입니다. 

3자리씩 나눠서

           첫번째 3자리는 소유자 권한
           두번째 3자리는 그룹 권한
           세번째 3자리는 기타 사용자 권한입니다.

권한은 읽기 [r] , 쓰기 [w] , 실행 [x] 이렇게 3가지입니다.

 

■ 권한 표기 방법 

비트표기(숫자모드)

읽기,쓰기,실행 순서대로 3bit를 부여해서

권한 위치에 해당되는 비트값을 10진수로 연산해서 표기

 

권한이 있으면 1 , 권한이 없으면 0

 

① 010 

첫번째 자리 읽기(r) 권한 없음 : 10진수 값 → 0

두번째 자리 쓰기(w) 권한 있음 : 10진수 값 → 2

세번째 자리 실행(x) 권한 없음 : 10진수 값 → 0

10진수 값이 모두 합치면 2

 

② 111

첫번째 자리 읽기(r) 권한 있음 : 10진수 값 4

두번째 자리 쓰기(w) 권한 있음 : 10진수 값 → 2

세번째 자리 실행(x) 권한 있음 : 10진수 값 → 1

10진수 값이 모두 합치면 7

 

③ 110

첫번째 자리 읽기(r) 권한 있음 : 10진수 값 4

두번째 자리 쓰기(w) 권한 있음 : 10진수 값 2

세번째 자리 실행(x) 권한 없음 : 10진수 값 0

10진수 값이 모두 합치면 6

 

첫번째 자리 값 → 4

두번째 자리 값  2

세번째 자리 값  1

 

◐ 예제

drwxr-xr-x owner1 group1 1234 Mar 28 2020 FOLD4

=> 첫번째 자리 d는 파일유형 디렉터리

=>두번째 자리부터 9자리가 권한입니다.

rwxr-xr-x

 

3자리씩 소유자,그룹,기타사용자 권한이 지정된다.

소유자 rwx → 111 → 7

그룹     r-x  → 101 → 5

기타 사용자 r-x → 101 → 5

 

권한 표기 : 755 

 

◐ 예제
-rwxr--r--        owner1 gruop1 345  Mar 28 2020 File1     

=> 첫번째 자리 -는 파일유형 일반파일

=>두번째 자리부터 9자리가 권한입니다.

rwxr--r--

 

3자리씩 소유자,그룹,기타사용자 권한이 지정된다.

소유자 rwx → 111 → 7

그룹     r--    100 → 4

기타 사용자 r-- → 100 → 4

 

권한 표기 : 744 

 

권한 사용 , 부여 방법

보통 파일이나 디렉터리에 권한을 부여할때 비트표기로 합니다.

문자표기와 같이 볼게요.

 

소유자 → u

그룹 g

기타사용자 o

권한부여 +

권한삭제 -

 

 

(샘플) -rwx------        owner1 gruop1 345  Mar 28 2020 File1

 

 그룹에서 읽기 권한 부여

비트표기(숫자모드)

     chmod 740 File1

문자표기(문자모드)

     chmod g+r File1

-rwxr-----        owner1 gruop1 345  Mar 28 2020 File1

 

◐ 소유자의 쓰기 권한 삭제

비트표기(숫자모드)

     chmod 500 File1

문자표기(문자모드)

     chmod u-w File1

-r-x------        owner1 gruop1 345  Mar 28 2020 File1

 

◐ 그룹 실행 권한 부여와 기타사용자에게 읽기, 쓰기 부여

비트표기(숫자모드)

     chmod 716 File1

문자표기(문자모드)

     chmod g+x,u+rw File1

-rwx--xrw-        owner1 gruop1 345  Mar 28 2020 File1

 

비트표기(숫자모드)는 모든 권한을 숫자로 표시해야 되고

문자표기(문자모드)는 작업 권한만 표시하면 됩니다.

 

파일에 대한 권한 


읽기 [r] : 파일 안의 내용을 볼 수 있는 거
쓰기 [w] : 파일 안의 내용을 수정하고 파일을 삭제할 수 있는 거
실행 [x] : 파일을 실행시켜 파일 안에 명령어를 수행시킬 수 있는 거
 -      : 권한이 없다는 표시

drwxrwxrwx owner1 group1 1234 Mar 28 2020 FOLD4 ------- ④

-rwx------        owner1 gruop1 345  Mar 28 2020 File1     ------- ⑤

④는 디렉터리이며 9자리 모두 권한이 부여되어 있습니다.

⑤는 파일이며 소유자한테만 권한이 부여되어 있고 그룹과 기타 사용자들은
    권한이 전혀 부여되어 있지 않습니다.

그리고 파일과 디렉터리에 대한 권한의 의미가 다릅니다. 기억해 두세요.!!

■ 디렉토리에 대한 권한 


읽기 [r] : ls 명령수행시 디렉터리가 화면에 보입니다.
쓰기 [w] : 디렉터리 안에서 파일을 신규로 생성할 수 있습니다.
실행 [x] : 디렉터리 안으로 들어갈 수 있습니다.(접근권한)
 -      : 권한이 없다는 표시

알아야 될 위치와 값에 대한 정보는 여기까지입니다. 

 


권한과 소유권에 대한 의미를 자세히 설명하겠습니다.


-rwxr---w- owner1 gruop1 345  Mar 28 2020 File2 ------- ⑥

-rwxrw-r-x owner1 gruop1 345  Mar 28 2020 File3 ------- ⑦

나의 계정이 owner2이고 그룹이 group1 라면 

⑥ 파일을 삭제할 수 있을까요? 

  => 삭제할 수 없습니다. 삭제 권한은 w입니다.
   ⑥ 파일 소유자가 owner1이며 그룹은 group1 입니다.
   내 계정이 owner2이므로 파일 소유자(owner1)가 아니라 pass 하고
   내 그룹이 group1이고 파일 그룹도 group1이라 같으므로 그룹 권한이 적용돼요.

   근데 그룹 권한이 r-- 로 읽기만 가능하기 때문에 삭제 불가능합니다.
   그래서 결론이 불가능입니다.
   만약에 계정이 owner3이고 그룹이 group2인 사용자는 삭제할 수 있을까요?

   파일 소유자(owner1)와 그룹(group1)이 다르므로 기타 사용자 그룹이 적용돼요.

   -w- 이네요. w 가 있네요. ㅋ 그래서 이번에는 삭제 가능합니다.

⑦ 파일도 삭제할 수 있을까요?

  => 삭제 가능합니다. 삭제 권한은 w입니다.
   파일 그룹(group1)이 일치하므로 그룹 권한이 적용되겠죠.

   rw- 이므로 w 권한이 있네요. 삭제돼요.ㅋ
   만약에 계정이 owner3 이고 그룹이 group2인 사용자는 삭제할 수 있을까요?

   파일 소유자(owner1)와 그룹(group1)이 다르므로 기타 사용자 그룹이 적용돼요.

   r-x 이네요. 아쉽게도 다른 권한은 있는데 w는 없네요. 불가능합니다.

drwxr--r-- owner1 group1 1234 Mar 28 2020 FOLD1 ------- ①

drwxr-xr-x owner1 group1 1234 Mar 28 2020 FOLD3 ------- ③

나의 계정이 owner2 이고 그룹이 group1 라면

① 디렉터리에 들어갈 수 있나요? 들어간다면 파일을 만들수 있나요?

  => 들어갈수 없습니다(접근 안됨). 못 들어가니 당연히 파일 만들 수도 없습니다.

   디렉터리 접근권한은 x이고 파일 생성 권한은 w입니다.

   ① 디렉터리의 소유자가 owner1이고 그룹이 group1 이네요.

   내 계정과 디렉토리 소유자가 다르니 pass 하고요.
   그룹은 group1으로 동일하므로 그룹 권한이 적용됩니다.

   r-- 헐..근데 접근권한 x 가 없네요. 그래서 들어갈 수 없습니다. 

③ 디렉터리에 들어갈 수 있나요? 들어간다면 파일을 만들수 있나요?

  => 예. 들어갈수 있어요. 하지만 파일은 못 만듭니다. ^^;

   ③ 디렉터리 그룹(group1)이 일치하므로 그룹 권한이 적용됩니다.

   r-x x가 있네요. 들어갑니다. ㅋ 헐..근데 w 가 없네요. 

   그래서 들어가지만 신규 파일은 생성 못합니다. 

위 두 가지만 이해하면 권한, 소유권에 대해서 더 이상 공부하실 거 없을 거예요. ^^;;

 


여기까지입니다.

나름 쉽게 설명한다고 길게 쓴 거 같습니다. ^^;; 

글쓰기에 미숙해서 편하게 읽을 수 있는 글은 아직 안되는 거 같습니다.

끝까지 읽어 주셔서 너무 감사드려요. 

피곤해서 그런지 눈이 따갑네요.. 바로 누워서 잡니다. 

리눅스 권한과 소유권



반응형

댓글