[CS/운영체제] 리눅스 소유권과 허가권

황제연·2025년 5월 7일
0

CS학습

목록 보기
67/193
post-thumbnail

리눅스의 소유권과 허가권

리눅스는 멀티유저 기반의 운영체로, 파일과 디렉토리를 제어하는
소유권(Ownership)과 허가권(Permissions) 개념을 가지고 있습니다

소유권

리눅스에서 모든 파일과 디렉토리는 다음의 정보를 가집니다

  • 소유자: 파일을 생성한 사용자
  • 소유 그룹: 해당 파일이 속한 그룹

확인 명령어

아래 명령어를 통해 소유권 정보를 확인할 수 있습니다
ls -l 파일명

소유자 및 그룹 변경

다음 명령어를 통해 소유자 및 그룹을 변경할 수 있습니다
chwon 사용자:그룹 파일명
chown 사용자 파일명
chgrp 그룹명 파일명

허가권

리눅스는 rwx 형태로 각 사용자에 대해 접근 권한을 정의합니다

권한의미파일디렉토리
r읽기(Read)파일 내용 읽기목록 보기 (ls)
w쓰기(Write)파일 내용 수정파일 생성/삭제
x실행(Execute)실행 가능접근/이동 가능

각각은 다음 세가지 그룹으로 나뉩니다

  • u (user): 소유자
  • g (group): 소유 그룹
  • o (others): 기타 사용자

해당 정보는 다음과 같이 사용할 수 있습니다

기호 방식

chmod u+x 파일명
chmod g-w 파일명
chmod o=r 파일명

숫자 방식

chmod 755 파일명

기본 권한 설정 - UMASK

umask는 파일/디렉토리 생성 시 기본으로 적용되는 권한을 제한하는 값입니다.

기본 생성 권한:

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

umask 계산:

최종 권한 = 기본 권한 - umask
umask 022

  • 파일: 666 - 022 = 644rw-r--r--
  • 디렉토리: 777 - 022 = 755rwxr-xr-x

특수 권한

리눅스에는 기본 권한 외에도 다음과 같은 특수 권한이 존재합니다
특수권한은 보안 및 파일/디렉토리의 동작을 제어하는 데 역할을 합니다

SET-UID (Set User ID)

  • 적용 대상: 실행 파일
  • 기능: 해당 파일을 실행하는 사용자가 자신의 권한이 아니라, 파일 소유자의 권한으로 실행하게 합니다
  • 예시: /usr/bin/passwd 명령어 → 일반 사용자가 자신의 비밀번호를 바꿀 수 있는 이유

SET-GID (Set Group ID)

  • 적용 대상: 실행 파일 또는 디렉토리
  • 기능
    • 파일: 실행 시 그룹 권한을 파일의 그룹으로 사용합니다
    • 디렉토리: 해당 디렉토리에 생성되는 파일/디렉토리의 그룹이 부모 디렉토리와 동일하게 설정됩니다

Sticky Bit

  • 적용 대상: 디렉토리
  • 기능: 해당 디렉토리에 존재하는 파일은 파일 소유자만 삭제 가능합니다
  • 주로 사용되는 위치: /tmp 디렉토리

숫자 모드로 설정하는 법

특수 권한8진수 값설명
SET-UID4사용자 권한 상승
SET-GID2그룹 권한 유지
Sticky Bit1사용자만 삭제 가능

특수 권한은 일반 권한 앞에 추가된 숫자로 표현합니다.
또한 특수 권한은 ls -l 명령어로 확인할 수 있습니다:

  • s: SET-UID/SET-GID (소문자: 실행권한 O, 대문자 S: 실행권한 X)
  • t: Sticky Bit (소문자: 실행권한 O, 대문자 T: 실행권한 X)

참고

  • CentOS 7로 이해하는 리눅스 관리 및 시스템 보안 - 도서
profile
Software Developer

0개의 댓글