English

chmod — 리눅스 기본 명령어

Linux / 리눅스 기본 명령어 / chmod.html

리눅스 기본 명령어원문등록 2026-10-19T09:00:00+09:00

파일과 디렉토리의 접근 권한을 변경하는 명령어.

기본 정보

명령어 이름chmod (change mode)
한 줄 소개파일과 디렉토리의 접근 권한을 변경하는 명령어.
제공GNU coreutils (모든 Linux 배포판 기본 탑재)
공식 문서https://man7.org/linux/man-pages/man1/chmod.1.html
지원 운영체제Linux, macOS, BSD, WSL
설치 여부기본 탑재 (별도 설치 불필요)
분류리눅스 기본 명령어 (태그: 권한, 접근 제어, 리눅스, 기본)

이 명령어는 무엇인가?

chmod는 change mode의 약자로, 파일과 디렉토리에 대한 접근 권한을 변경하는 명령어입니다. 리눅스에서는 소유자(owner), 그룹(group), 기타(other)에 대해 읽기(r), 쓰기(w), 실행(x) 권한을 개별적으로 부여합니다.

숫자(8진수) 방식과 기호 방식 두 가지로 권한을 지정할 수 있으며, 스크립트 실행 권한 부여에 가장 자주 사용됩니다.

어떤 문제를 해결하는가?

  • 스크립트 파일에 실행 권한을 부여합니다.
  • 파일 접근 권한을 강화합니다.
  • 공유 디렉토리 권한을 설정합니다.
  • 권한이 잘못 부여된 파일을 수정합니다.

주요 기능

숫자(8진수) 방식

r=4, w=2, x=1의 조합으로 권한을 숫자로 지정합니다.

  • 활용 상황: 정확한 권한을 한 번에 설정할 때.
  • 얻는 결과: 예: 755 = 소유자(rwx), 그룹(r-x), 기타(r-x)
  • 제한 사항: 숫자를 잘못 지정하면 권한이 과도하게 열릴 수 있습니다.

기호 방식

u(소유자), g(그룹), o(기타), a(전체)에 +, -, = 연산자를 사용합니다.

  • 활용 상황: 특정 대상의 권한만 변경할 때.
  • 얻는 결과: 예: chmod u+x script.sh (소유자에게 실행 권한)
  • 제한 사항: 기호 방식이 숫자보다 읽기 어려울 수 있습니다.

재귀 변경 (-R)

디렉토리와 하위의 모든 파일에 권한을 적용합니다.

  • 활용 상황: 디렉토리 전체 권한을 일괄 변경할 때.
  • 얻는 결과: 하위 파일까지 모두 변경됩니다.
  • 제한 사항: 과도한 재귀 변경은 시스템에 문제를 일으킬 수 있습니다.

참조 파일 복사 (--reference)

다른 파일의 권한을 그대로 복사합니다.

  • 활용 상황: 일관된 권한 설정이 필요할 때.
  • 얻는 결과: 참조 파일과 동일한 권한이 적용됩니다.
  • 제한 사항: 일부 파일 시스템에서는 지원하지 않을 수 있습니다.

설치 및 실행

기본 탑재 확인

모든 Linux 배포판에 기본 포함되어 있습니다.

which chmod
chmod --version

권한 확인 명령 (ls -l)

현재 권한을 확인하려면 ls -l을 사용합니다.

ls -l file.txt
# -rw-r--r-- 1 user group 1024 Oct 18 12:00 file.txt
#  ^^^ 소유자 권한
#      ^^^ 그룹 권한
#          ^^^ 기타 권한

실제 사용 예제

숫자 방식으로 권한 변경

8진수로 권한을 설정합니다.

# 스크립트에 실행 권한 부여 (755)
chmod 755 script.sh

# 읽기/쓰기만 (600)
chmod 600 secret.key

# 전체 읽기 (644)
chmod 644 public-file.txt

# 디렉토리 트래버스 권한 (755)
chmod 755 /var/www/html

기호 방식으로 권한 변경

특정 대상의 권한만 변경합니다.

# 소유자에게 실행 권한 추가
chmod u+x script.sh

# 기타의 실행 권한 제거
chmod o-x script.sh

# 그룹에 읽기 권한 추가
cat /etc/hosts | sudo tee /var/log/shared.txt
group_name="developers"
chmod g+r /var/log/shared.txt
chgrp $group_name /var/log/shared.txt

# 전체 읽기 권한 설정
chmod a=r file.txt

재귀 권한 변경

디렉토리 전체에 권한을 적용합니다.

# 디렉토리와 하위 파일에 실행 권한 부여
chmod -R a+x /opt/scripts/

# 디렉토리 권한만 변경 (파일은 유지)
chmod 755 /var/www/html/
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;