리눅스 마스터 2급

리눅스마스터 2급 - 소유권 관련

유한사람 2024. 1. 24. 00:00

리눅스 시스템의 모든 파일과 디렉터리에는 접근권한과 소유권이 부여되며, 파일 속성을 나타내는 명령어는 ls -l이다.

Ex) -rw-rw-r--     1      youngjin      youngjin      53      2017-09-16      18:49      TST

-rw-rw-r--        => 파일 허가권/ 파일 유형과 파일 접근 권한으로 구성(r : 읽기권한 w : 쓰기권한 x : 실행권한 )

1                     => 물리적 파일 연결 개수

youngjin          => 파일 소유자명

youngjin          => 파일 소유 그룹명

53                   => 파일 크기(바이트 단위)

2017-09-16    => 파일 마지막 변경 시간

TST               => 파일명

 

소유권이란? 임의의 파일 또는 디렉터리에 대해 사용자와 그룹들의 소유 권한을 나타낸 것

그룹이란? 사용자들의 시스템 운영 특성에 따라 묶어 놓은 것 (같은 그룹의 사용자는 동일한 소유권과 작업 권한을 가짐.)

 -rw-rw-r-- 1 youngjin youngjin 53 2017-09-16 18:49 TST

(파일 TST에 대한 소유권은 사용자 youngjin과 그룹 youngjin에게 있다는 의미)

 

파일과 디렉터리의 사용자 소유권 및 그룹 소유권을 변경하려면 => chown 명령어를 이용한다.

형식) #chown [옵션] 소유자[:그룹명] 파일명

파일이나 디렉터리의 그룹 소유권을 변경하려면 => chgrp 명령어를 이용한다.

형식) #chgrp [옵션] 그룹명 파일명

Ex) #chown -R root youngjin => 디렉터리 youngjin의 모든 파일과 하위 디렉터리의 소유권을 root로 변경.

       (-R : 하위 디렉터리 포함, 디렉터리 내부의 모든 파일 소유권 변경)

      #chgrp youngjin TST => 파일 TST의 그룹 소유권을 youngjin로 변경.

      (-R : 하위 디렉터리 포함, 디렉터리 내부의 모든 파일 그룹 소유권 변경)

chown과  chgrp의 차이점? chown은 소유자와 소유 그룹을 모두 변경할 수 있지만 chgrp는 그룹 소유권만을 변경한다.

 

 -  r w - r w - r - -

     -  (하이픈)      => 파일 유형

    r w - r w - r - -  => 접근 권한

 

<허가권 관련 명령어>

 1. ls -l 명령어로 파일 유형과 허가권을 알 수 있다.

 2. 파일 허가권의 첫 번째 자리는 파일 유형을 기호로 정의

 3. 파일은 일반 파일, 디렉터리 파일, 특수 파일로 나뉜다.

 4. 명령어 ls -l /dev를 실행하면 파일 유형이 'b'나'c'인 파일들을 확인 가능

기호 파일 유형
- 일반 파일
d 디렉터리 파일
특수 파일 b 블록 단위로 읽고 쓰는 블록 장치 특수 파일
(블록 장치 : 하드디스크, 플로피디스크, CD/DVD 등 저장 장치)
c 문자 단위로 읽고 쓰는 문자 장치 특수 파일
(문자 장치 : 마우스, 키보드, 프린터 등 입출력 장치)
l 기호적 링크로 바로가기 아이콘 역할 수행
(연결돼있는 파일과 실제 파일은 다른 곳에 존재)
p 파이프
s 소켓

 5. 파일 허가권의 두 번째 자리에서 열 번째 자리는 파일 접근 권한을 정의

 6. 리눅스는 사용자 별로 파일 권한 부여

 7. 파일 사용자는 파일 소유자, 그룹 소속자, 기타 사용자로 구분

 8. 파일 권한은 읽기(r) 쓰기(w) 실행(x)

 9. 읽기, 쓰기 또는 실행의 접근 제한 표시는 하이픈기호 (-)로 나타낸다.

10. 사용자별 권한은 기호 모드 또는 8진수 숫자 모드로 표시한다.

11. TST.txt의 기호 권한 ' r w - r w - r - - '는 숫자 권한으로 644이다. 파일 소유자와 그룹 사용자들은 TST.txt 파일에 대해 읽고 쓰기만 가능하며, 그 외 사용자들은 읽기만 가능하다.

 

r w x 왼쪽부터 8진수 숫자 모드로 표시하면 4 2 1이다.(-는 0 이기에 카운트 X) 

(모든 권한을 갖고 있을 시 4+2+1 => 7로 표기)

풀이 사용자 권한 그룹 권한 기타 사용자 권한
기호 모드 r w - r w - r - -
8진수 숫자 모드 4 2 0 4 2 0 4 0 0

 

 

12. 권한은 파일 유형에 따라 다르게 정의된다.

풀이 일반 파일 디렉터리 파일 특수 파일
읽기(r) 파일 내용 읽기 디렉터리 내 파일 목록 읽기 read()로 파일 읽기
쓰기(w) 파일 수정/ 삭제 디렉터리 내 파일 생성/ 삭제 가능 write()로 파일 내용 변경
실행(x) 파일 실행 cd 명령을 이용하여 디렉터리로 이동 가능 권한 의미 없음

 

파일이나 디렉터리의 접근 허가권을 변경하려면 => chmod 명령어를 이용한다.

형식) #chmod [옵션] 파일명

 (-R : 하위 디렉터리에 포함되어 있는 모든 디렉터리 및 파일의 권한 변경)

 

권한 변경은 '숫자 모드', '기호 모드'가 있다.

<숫자 모드>

기호 2진수 8진수 의미
rwx 111 7 읽기, 쓰기, 실행 권한 가짐
rw- 110 6 읽기, 쓰기 권한 가짐
r-x 101 5 읽기, 실행 권한 가짐
r-- 100 4 읽기 권한만 가짐
-wx 011 3 쓰기와 실행 권한 가짐
-w- 010 2 쓰기 권한만 가짐
--x 001 1 실행 권한만 가짐
--- 000 0 아무 권한도 가지지 못함.

 

<기호 모드>

기호 모드 의미 적용 예제
사용자 u 소유자 chmod u+w : 소유자에게 쓰기 권한 부여

chmod u-x : 소유자의 실행 권한 제거

chmod o=rx : 기타 사용자에게 읽기, 실행 권한 부여
g 그룹
o 기타 사용자
a 모든 사용자(u+g+o)
연산자 + 허가권 부여
- 허가권 제거
= (특정 사용자에게) 허가권 지정
권한 r 읽기
w 쓰기
x 실행

 

새로 생성되는 파일이나 디렉터리의 기본 허가권 값을 지정하려면 => umask

파일의 기본 권한 : 666, 디렉터리의 기본 권한 : 777. umask는 디폴트 권한 값을 변경함.

형식) umask[옵션][값]

(-S : umask 값을 문자로 표기)

이 부분은 헷갈리기에 따로 정리할 예정