본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 087. PermissionError - access denied to root-only file

by about_IT 2025. 5. 31.
728x90

PermissionError: access denied to root-only file 오류는 일반 사용자 권한으로 시스템 파일 또는 루트(root) 전용 파일에 접근하려 할 때 발생합니다. 이 오류는 보통 /etc/, /root/, C:\Windows\System32\와 같은 시스템 보호 영역의 파일을 읽거나 수정하려는 시도에서 발생합니다.

운영체제는 중요 시스템 파일을 보호하기 위해 루트 또는 관리자 권한을 요구하며, 파이썬 프로그램이 해당 권한 없이 접근하면 PermissionError를 발생시킵니다.

● 오류 발생 예시

with open("/etc/shadow", "r") as f:
    data = f.read()

이 파일은 루트 권한이 필요한 시스템 보안 파일이기 때문에 일반 사용자 권한으로 열 경우 오류가 발생합니다.

PermissionError: [Errno 13] Permission denied: '/etc/shadow'

● 해결 방법

  • 해당 작업을 수행하려면 관리자 권한으로 실행
  • 루트 권한이 필요한 작업인지 사전 확인
  • 테스트 환경에서는 별도의 권한 없는 파일을 사용할 것
  • Windows에서는 관리자 권한으로 Python 실행

● 예시 코드 (권한 체크)

import os
file_path = "/etc/shadow"
if os.access(file_path, os.R_OK):
    with open(file_path, "r") as f:
        data = f.read()
else:
    print("파일을 읽을 수 있는 권한이 없습니다.")

● 자주 하는 실수

  • 루트 전용 경로를 일반 사용자로 접근 시도
  • 테스트 시 실제 시스템 파일 경로를 실수로 참조
  • 파일 권한 확인 없이 open() 호출

● 결론

PermissionError - access denied to root-only file는 시스템 보호 파일에 접근할 권한이 없을 때 발생합니다. 관리자 권한이 필요한 작업은 신중하게 수행하고, 일반 사용자 환경에서는 테스트용 파일을 별도로 구성하여 실행하는 것이 좋습니다.

728x90