리눅스데브코스 [5주차 - 3]<리눅스 파일>

심우열·2023년 5월 3일
0

1. File Permission

1. 파일 접근 권한 보호

  1. 리눅스는 파일에 무단으로 접근하는 것을 방지하고 보호하는 기능을 제공
  2. 사용자는 자신의 파일과 디렉토리 중에서 다른 사용자가 접근해도 되는 것과 그렇지 않은 것을 구분하여 접근 권한을 제한

2. 파일의 속성

1. 파일의 종류

  1. 파일 속성의 첫 번째 항목은 파일의 종류 표시
  2. -는 일반 파일을, d는 디렉토리를 의미
  3. file: 파일의 종류를 알려주는 명령

2. 파일의 접근 권한 표시

파일의 소유자와 그룹, 기타 사용자들이 파일에 대해 가지고 있는 접근 권한을 표시

3. 하드링크의 개수

하드 링크는 한 파일에 대해 여러 개의 파일명을 가질 수 있도록 하는 기능

4. 파일 소유자의 로그인 ID

리눅스에서 모든 파일은 소유자가 있음

5. 파일 소유자의 그룹 이름

  1. ls -l 명령에서 출력되는 그룹명은 파일이 속한 그룹
  2. 사용자가 속한 기본 그룹은 시스템 관리자가 사용자를 등록할 때 결정
  3. groups: 사용자가 속한 그룹을 알려주는 명령어

3. 접근 권한의 종류

1. 읽기, 쓰기, 실행 권한

1. 읽기

  1. 파일: 파일을 읽거나 복사 할 수 있다.
  2. 디렉토리: ls 명령으로 디렉토리 목록을 볼 수 있다.

2. 쓰기

  1. 파일: 파일을 수정-이동-삭제 할 수 있다.(파일이 포함된 디렉토리에 쓰기 권한이 있을 떄)
  2. 디렉토리: 파일을 생성하거나 삭제 할 수 있다.

3. 실행

  1. 파일: 파일을 실행 할 수 있다.(shell 스크립트나 실행파일의 경우)
  2. 디렉토리: cd 명령을 사용할 수 있다, 파일을 디렉토리로 이동하거나 복사 할 수 있다

2. 접근 권한의 표기 방법

-rwxrwxrwx (0123456789)

r -> 읽기 권한, 4의 값 가짐
w -> 쓰기 권한, 2의 값 가짐
x -> 실행 권한, 1의 값 가짐
0 -> 파일의 종류
1,2,3 -> user의 권한
4,5,6 -> group의 권한
7,8,9 -> othesr의 권한

ex) -rw-r--r-- -> 0644

3. 접근 권한의 변경 명령: chmod

파일이나 디렉토리의 접근 권한을 변경한다

1. 기호모드

ex) chmod_test.sh user에게 실행권한 부여

chmod u+x chmod_test.sh

ex) others와 group에게 쓰기 권한 삭제

chmod go-w chmod_test.sh

ex) 전체 사용자에게 읽기, 실행권한 부여

chmod a=rx chmod_test.sh

ex) user에게 실행권한 부여하고 group과 others에게 쓰기 권한 부여

chmod u+x,go+w chmod_test.sh

2. 숫자모드

ex) chmod_test.sh user에게 rwx, group에게 rw, others에게 r 권한 부여

chmod 764 chmod_test.sh

-> 7(4+2+1,rwx)6(4+2,rw)4(4,r)

4. 기본 접근 권한 설정

  1. 리눅스에서는 파일이나 디렉토리를 생성할 때 기본 접근 권한이 자동적으로 설정
  2. 일반 파일의 경우 소유자는 rw, 그룹과 기타 사용자는 r
  3. 디렉토리의 경유 소유자는 rwx, 그룹과 기타 사용자는 r

1. 기본 접근 권한 확인하고 변경하기: umask


1. 마스크 값은 파일이나 디렉토리 생성시 부여하지 않을 권한을 지정해 놓는 것
2. 마스크 값이 022 일 경우 --- -w- -w-, 즉 group과 others에 w 권한을 부여하지 않겠다는 것
-> 마스크로 생성된 파일이나 디렉토리의 권한 rwx r-x r-x

umask 변경하기

umask 022

-> umask 가 022로 변경 됨

5. 특수 접근 권한

  1. 접근권한은 원래 4자리
  2. 생략된 맨 앞자리는 특수 접근 권한을 의미
  3. 맨 앞자리 숫자가 0이면 일반적인 접근권한이지만, 숫자가 1, 2, 4이면 특수 접근 권한 설정

1. SetUID

  1. 권한의 맨 앞자리가 4
  2. 해당 파일이 실행되는 동안에는 파일을 실행한 사용자의 권한이 아니라 파일 소유자의 권한으로 실행
  3. SetUID 가 설정되면 소유자의 실행권한에 S로 표시됨 -> -rwsr-x--x
  4. passwd 명령은 SetUID가 설정되어 있기 때문에 소유자인 root 권한으로 실행이 되어 암호 변경 가능

2. SetGID: 맨 앞자리가 2

  1. 권한의 맨 앞자리가 2
  2. SetGID가 설정된 파일을 실행하면 해당 파일이 실행되는 동안에는 파일 소유 그룹의 권한으로 실행

3. 스티키 비트(sticky bit): 맨 앞자리가 1

  1. 권한의 맨 앞자리가 1
  2. 스티키 비트는 디렉토리에 설정
  3. 디렉토리에 스티키 비트가 설정되어 있으면 이 디렉토리는 누구나 파일을 생성 가능
  4. 파일은 파일을 생성한 계정으로 소유자가 설정되며, 다른 사용자가 생성한 파일은 삭제 불가
  5. /tmp 디렉토리가 대표적인 스티키 비트 권한 디렉토리
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글