[리눅스 권한 명령어 정리] chmod, chown, umask

2025. 5. 27. 16:16·linux
728x90
반응형

리눅스를 사용하다 보면 누구나 한 번쯤 마주하게 되는 명령어들이 있다.
바로 chmod, chown, umask다.
처음엔 파일에 권한을 줘야 해서 chmod 755를 치지만, 왜 그렇게 쓰는지 감이 안 올 때도 많다.

이번 글에서는 실무에서 꼭 알아야 할 다음 개념을 실습 중심으로 정리해본다:

 

  • chmod로 권한 부여/제거
  • 파일 vs 디렉터리에서 rwx의 의미 차이
  • chown으로 소유자 변경
  • umask로 기본 권한 설정하기

chmod – 권한을 읽고 쓸 줄 알아야 진짜다

chmod [옵션] [권한] 파일명

rwx는 다음을 의미한다:

권한 의미 숫자값
r 읽기(read) 4
w 쓰기(write) 2
x 실행(execute) 1
chmod 755 script.sh

→ rwxr-xr-x
→ 소유자: 읽기/쓰기/실행, 그룹/기타: 읽기/실행만 가능


파일 vs 디렉터리에서 rwx의 의미 차이

권한 파일에서 의미 디렉터리에서 의미
r 파일 내용을 읽을 수 있음 (cat) 디렉터리 내 파일 목록 보기 (ls)
w 파일 내용을 수정 가능 디렉토리 내 파일 생성/삭제
x 파일 실행 가능 (./run.sh) 디렉터리로 진입 가능 (cd)
# 디렉토리에서 실행 권한 없으면?
cd mydir  # Permission denied 에러 발생

# 쓰기 권한 없으면?
touch mydir/file.txt  # 에러 발생 (쓰기 권한 없음)

디렉터리에서 x는 "들어갈 수 있음", w는 "내용 수정(파일 추가/삭제)"이다.


chown – 소유자와 그룹을 바꾸자

chown [소유자][:그룹] 대상파일
chown ubuntu:ubuntu file.txt

→ file.txt의 소유자와 그룹을 모두 ubuntu로 변경

chown root file.txt     # 소유자만 변경
chown :dev file.txt     # 그룹만 변경

옵션

옵션 설명
-R 하위 디렉토리까지 재귀 변경
--from=A:B 현재 소유자가 A, 그룹이 B일 때만 변경

umask – 새로 만든 파일의 기본 권한 설정

  • umask는 파일/디렉터리 생성 시 제외할 권한을 정하는 마스크(mask)다.
  • 기본값은 보통 0022 또는 0002로 되어 있음.

 

기본 공식

항목 권한 공식 예시
파일 666 - umask 644 ← 666 - 022
디렉토리 777 - umask 755 ← 777 - 022

예시

umask        # 현재 값 확인
umask 0022   # 기본 설정
umask 0077   # 자신 외에는 아무도 접근 불가

umask는 보안을 위해 중요한 기본 설정이며, /etc/profile, ~/.bashrc 등에 설정할 수 있음


SetUID – 실행자 대신 파일 소유자 권한으로 실행

기본 개념

  • 파일에 SetUID 권한이 설정되면, 실행하는 사용자가 누구든 간에 파일 소유자의 권한으로 실행됨
  • 주로 루트 권한으로 실행되어야 하는 명령어에 사용됨

 

사용 예

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 /usr/bin/passwd
  • s → SetUID 설정됨
  • 소유자가 root → 일반 유저도 실행 시 root 권한으로 /etc/shadow 수정 가능

설정 방법

chmod u+s 파일명
chmod 4755 file.sh
  • 4xxx에서 4는 SetUID를 의미

SetGID – 실행자 대신 그룹 권한으로 실행

기본 개념

  • SetGID는 두 가지 방식에서 의미가 다름
  • ① 파일에 설정하면: 실행자 → 파일 그룹 권한으로 실행
chmod g+s 파일명
chmod 2755 file.sh
  • ② 디렉터리에 설정하면: 그 디렉터리 안에 생성되는 모든 파일은 그 디렉터리의 그룹을 상속받음
chmod g+s shared_dir
  • 예: /project 디렉터리에 SetGID 설정 시, 여기에 생성된 파일들은 자동으로 project 그룹 소속

팀 프로젝트에서 협업 시 파일들이 자동으로 같은 그룹으로 묶이게 해줌


Sticky Bit – 삭제는 소유자만 가능하게 제한

기본 개념

  • 디렉터리에 설정하면, 그 안의 파일은 소유자만 삭제 가능
  • 예: /tmp처럼 여러 사용자가 접근 가능한 디렉터리에서 필수

 

사용 예

ls -ld /tmp
drwxrwxrwt 10 root root 4096 ... /tmp
  • 마지막 t가 Sticky Bit 설정을 의미

설정 방법

chmod +t 디렉터리명
chmod 1777 /public
  • 1xxx에서 1은 Sticky Bit

고급 권한 설정 요약

이름 설정 명령어 의미 사용 예
SetUID chmod u+s 또는 chmod 4xxx 실행 시 소유자 권한으로 실행 /usr/bin/passwd
SetGID (파일) chmod g+s 또는 chmod 2xxx 실행 시 그룹 권한으로 실행 제한적 사용
SetGID (디렉터리) chmod g+s 생성 파일이 디렉터리 그룹 상속 /project
Sticky Bit chmod +t 또는 chmod 1xxx 디렉터리 내 파일은 소유자만 삭제 가능 /tmp, /public

파일 권한 표시 변화

권한 문자열 의미
-rwsr-xr-x SetUID (소유자 s)
-rwxr-sr-x SetGID (그룹 s)
drwxrwxrwt Sticky Bit (t)

s는 x 위치에 붙는다
S(대문자)는 실행권한(x)이 없는 상태에서의 setuid/gid 설정 (비정상)


마무리

권한 관리는 단순히 파일을 실행할 수 있게 만드는 걸 넘어, 시스템 보안의 핵심이다.
rwx가 파일과 디렉터리에서 어떻게 다르게 작동하는지 이해해야 chmod도 정확하게 다룰 수 있다.
실무에서는 chown -R, chmod 600, umask 0077 같은 명령어를 자주 쓰게 된다.

728x90
반응형

'linux' 카테고리의 다른 글

[리눅스 프로세스 관리] ps와 kill 명령어 + 시그널까지 한 번에 정리하기  (0) 2025.05.28
[리눅스 명령어] linux tar 명령어 – 압축 및 해제  (0) 2025.05.28
[리눅스 유저 & 그룹 관리] useradd, usermod, passwd, groupadd  (0) 2025.05.26
[리눅스 기본기] redirect, pipe, grep – 셋만 알아도 터미널이 쉬워진다  (0) 2025.05.23
[리눅스 기본기] vi 에디터 단축키 정리 - 이동, 복사, 삭제, 검색, 대치  (0) 2025.05.22
'linux' 카테고리의 다른 글
  • [리눅스 프로세스 관리] ps와 kill 명령어 + 시그널까지 한 번에 정리하기
  • [리눅스 명령어] linux tar 명령어 – 압축 및 해제
  • [리눅스 유저 & 그룹 관리] useradd, usermod, passwd, groupadd
  • [리눅스 기본기] redirect, pipe, grep – 셋만 알아도 터미널이 쉬워진다
highgarden
highgarden
커밋 하나하나가 쌓여 커다란 정원이 되는 중입니다. 하루하루 정성껏 심어가는 중 https://github.com/highgarden7
  • highgarden
    커밋심는 정원
    highgarden
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • ai (1)
      • devops (2)
      • Nest.js (14)
      • linux (14)
      • 네트워크 (6)
      • git (0)
      • aws (0)
      • docker (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Linux
    nestjs
    springboot
    IP
    vercel
    네트워크
    Java
    githib action
    Chat GPT
    E2E
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
highgarden
[리눅스 권한 명령어 정리] chmod, chown, umask
상단으로

티스토리툴바