[리눅스마스터 1급 - 2차] 파일 및 디렉터리 권한

2024. 10. 23. 17:55·자격증 & 공부/리눅스마스터 1급

1. 파일 및 디렉터리 권한

1.1. 소유권 & 허가권 확인 방법

1.1.1 파일 유형 종류

  • d : 디렉토리
  • b : 블록 디바이스 파일
  • c : 문자 디바이스 파일
  • l : 심볼릭 링크 파일
  • p : 명명된 파이프
  • s : 유닉스 도메인
  • - : 일반(정규) 파일

1.1.2. 허가권(permission)

  • 각 파일에 접근해서 읽거나 쓰거나 실행할 권리를 사용자/그룹/다른사용자로 나눠서 관리
    • user : 파일을 만든 소유주
    • group : 파일을 만든 소유주가 속한 그룹의 사용자
    • other : 기타 사용자
    문자 값  파일  디렉터리
    r(4) 파일에 대한 읽기 권한. 열기, 읽기 허용 디렉터리 내의 파일을 나열할 수 있게 허용
    w(2) 파일에 대한 쓰기 권한. 쓰기, 잘라내기 허용 디렉터리 내의 파일들을 생성, 삭제, 이름 변경이 가능하도록 허용
    x(1) 파일에 대한 실행 권한 디렉터리 내에서 탐색을 위해 이동할 수 있도록 허용
    - r,w,x에 대한 권한이 없음을 표시  

1.1.3. 소유권(ownership)

  • 각 파일이나 디렉터리를 소유할 사용자나 그룹 지정

1.2. 소유권 & 허가권 변경 방법

1.2.1. 허가권 변경 $ chmod

  • 미션 숫자
8진수 2진수  권한  의미
0 000 --- 아무 권한 없음
1 001 --x 실행 권한만 있음
2 010 -w- 쓰기 권한만 있음
3 011 -wx 쓰기,실행 권한 있음
4 100 r-- 읽기 권한만 있음
5 101 r-x 쓰기,실행 권한 있음
6 110 rw- 읽기,쓰기 권한 있음
7 111 rwx 모든 권한 있음
# 사용자는 읽기,쓰기(4+2) 권한 부여하고, 
# 그룹과 다른사용자는 읽기(4) 권한만 부여
$ chmod 644 myfile.txt

# 권한 전부 주기
$ chmod 777 test.txt
  • 기호 문자
    • 읽기 r
    • 쓰기 w
    • 실행 x
    • 권한 추가 +
    • 권한 삭제 -
    • 권한 지정 =
    • 사용자 허가권 u
    • 그룹 허가권 g
    • 다른 사용자 허가권 o
    • 모두 a
    # 파일에 대하여 사용자(u)에 읽기 및 쓰기(rw)권한으로 초기화(=)
    $ chmod u=rw myfile.txt
    
    # 파일에 모두(a)에게 읽기,쓰기(rw) 권한으로 초기화(=)
    $ chmod a=rw file.txt
    
    # test.txt 의 소유자(u)에게 읽기(r) , 쓰기(w) 권한을 추가 부여(+)
    $ chmod u+rw test.txt
    
    # test.txt 의 소유그룹(g)에게 쓰기(w) 권한을 제거(-)
    $ chmod g-w test.txt
    
    # 그외 계정에게 모든 권한을 제거(-)
    # rwx의 순서는 변경하여도 무방하다. o-rwx = o-wxr
    $ chmod o-wxr test.txt
  • 옵션
    • -R : 특정 디렉터리 내의 파일과 디렉터리에 대해 재귀적으로 허가권 변경
    • -C : 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력
    • -f : 대부분의 에러메시지 출력을 제한
    • -reference : 모드 대신 파일에 지정한 모드를 사용
    • -t : sticky bit 설정하는 옵션
# 디렉터리 이하의 모든 파일과 디렉터리에 대해 (-R)
# 사용자는 읽기, 쓰기, 실행(4+2+1) 권한을 부여하고 ,
# 그룹과 다른 사용자는 읽기 및 실행(4+1) 권한 부여
$ chmod -R 755 myfiles

1.2.2. 사용자 및 그룹 소유권 변경 $ chown

  • 루트 사용자만 가능
  • 옵션은 허가권과 동일
$ chown [options] owner:[group] files
# test.txt 파일을 소유자를 root로
$ chown root test.txt

# 사용자는 myuser 그룹은 mygroup으로 파일 소유자 변경
$ sudo chown myuser:mygroup myfile.txt

# myfiles 디렉터리 이하 모든 파일 및 디렉터리에 대하여 사용자는 myuser, 그룹은 mygroup으로 소유자 변경
$ sudo chown -R myuser:mygroup myfiles

1.2.3. 그룹 소유권만 변경 $ chgrp

# 본인이 소유한파일에 대해 자신의 그룹내 소유권 변경
$ chgrp [options] group file
#  test.txt 파일의 소유그룹을 hansgroup로
$ chgrp hansgroup test.txt

# 디렉터리 이하 모든 파일과 디렉터리에 대해 그룹을 colors로 변경 
$ chgrp -R colors color_files

1.2.4. 기본 허가권 변경 $ umask

  • 시스템상 파일이나 디렉터리를 생성할 때 자동으로 기본 허가권이 부여됨
  • 파일 : 666 / 디렉터리 : 777
  • 계산 방법
    • 파일이나 디렉터리 생성 시 기본값에서 umask에 설정된 마스크 값을 뺀 결과값을 허가권으로 지정
umask [option][mask] 
# 옵션 -S : umask 값을 숫자대신 문자로 표기
# 현재 umask 값 확인
$ umask
 0002

# 문자로 현재 umask값 확인
$ umask -S
 u=rwx,g=rwx,o=rx

# umask 설정시 문자 사용하여 설정가능
$ umask u=rwx,g=rwx,o=rx

1.3. 리눅스 파일 특수 권한

1.3.1. Set-UID

  • 4000
  • 해당 사용자의 권한이 아닌 파일의 소유자 권한으로 실행

1.3.2. Set-GID

  • 2000
  • 사용자의 그룹이 아닌 해당 파일의 그룹으로 실행

1.3.3. sticky bit

  • 디렉터리에만 설정 가능
  • 1000
  • 누구나 접근 가능한 디렉터리 (삭제는 오직 소유자만 가능)

참고 문헌

https://inpa.tistory.com/entry/LINUX-📚-파일-권한-소유권허가권-💯-정리

 

🐧 리눅스 파일 & 디렉토리 권한 (소유권 / 허가권 / 특수권한)

파일 및 디렉터리 권한 리눅스는 여러사용자가 들어와 사용하는 멀티유저 시스템이다. 따라서 여러 사용자가 들어와 사용하다보면, 서버에 올려진 비밀자료 열람과 그것을 변조,수정,삭제를 할

inpa.tistory.com

 

저작자표시 비영리 변경금지 (새창열림)

'자격증 & 공부 > 리눅스마스터 1급' 카테고리의 다른 글

[리눅스마스터 1급 - 2차] 파일 시스템  (0) 2024.10.24
[리눅스마스터 1급 - 2차] 파일 속성  (0) 2024.10.24
[리눅스마스터 1급 - 2차] 파일 링크 (하드 링크 / 심볼릭 링크 / inode)  (0) 2024.10.23
[리눅스마스터 1급 - 2차] 사용자/그룹 계정 관리  (0) 2024.10.23
[리눅스마스터 1급] 필기 시험 후기  (0) 2024.09.09
'자격증 & 공부/리눅스마스터 1급' 카테고리의 다른 글
  • [리눅스마스터 1급 - 2차] 파일 시스템
  • [리눅스마스터 1급 - 2차] 파일 속성
  • [리눅스마스터 1급 - 2차] 파일 링크 (하드 링크 / 심볼릭 링크 / inode)
  • [리눅스마스터 1급 - 2차] 사용자/그룹 계정 관리
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    Oracle
    데이터베이스
    Flutter
    pcce 기출문제
    Spring Security
    postgresql
    백준
    DB
    CS지식
    backjoon
    Linux
    시큐리티
    CS
    JPA
    spring
    programmers
    데이터
    python
    리눅스마스터 1급
    스프링부트
    스프링 부트 쇼핑몰 프로젝트 with JPA
    Java
    리눅스마스터
    baekjoon
    스프링
    리눅스
    자바
    springboot
    플러터
    프로그래머스
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[리눅스마스터 1급 - 2차] 파일 및 디렉터리 권한
상단으로

티스토리툴바