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
'프로그래밍언어 > 파이썬[Error]' 카테고리의 다른 글
[파이썬][Error] 089. OSError - operation not permitted on system file (0) | 2025.05.31 |
---|---|
[파이썬][Error] 088. PermissionError - cannot write to read-only file (0) | 2025.05.31 |
[파이썬][Error] 086. MemoryError - object leak in infinite loop (0) | 2025.05.31 |
[파이썬][Error] 085. MemoryError - cannot read large file into memory (0) | 2025.05.31 |
[파이썬][Error] 084. MemoryError - cannot allocate large list (1) | 2025.05.30 |