728x90
OSError: operation not permitted on system file
오류는 시스템 보호 파일이나 디렉토리에 대해 허용되지 않은 작업을 시도할 때 발생합니다. 운영체제는 중요 시스템 리소스에 대해 읽기, 쓰기, 삭제 등의 작업을 제한하고 있으며, 파이썬에서 이러한 제한을 무시하고 접근하려 할 경우 OSError
가 발생합니다.
이 오류는 파일 삭제, 권한 변경, 심볼릭 링크 생성, 파일 이동 등과 같은 작업이 시스템에서 금지된 경로 또는 파일에 대해 실행될 때 자주 발생합니다. 특히 Windows의 C:\Windows\System32
, Linux의 /bin
, /usr
디렉토리 등은 보호된 영역입니다.
● 오류 발생 예시
import os
os.remove("/bin/ls")
시스템 명령어가 저장된 파일을 삭제하려 할 경우 OSError
가 발생합니다.
OSError: [Errno 1] Operation not permitted: '/bin/ls'
● 해결 방법
- 시스템 보호 경로에서는 쓰기/삭제 작업을 시도하지 말 것
- 관리자 또는 루트 권한이 필요하더라도 실행은 신중히
- 일반 사용자용 경로에 파일을 복사하여 작업 수행
- 파일 보호 속성 여부(
chattr
, Windows 속성) 확인
● 예시 코드 (안전한 삭제)
import os
file_path = "/home/user/test.txt"
if os.access(file_path, os.W_OK):
os.remove(file_path)
else:
print("삭제 권한이 없습니다.")
● 자주 하는 실수
- 시스템 디렉토리의 파일을 실수로 수정 또는 삭제 시도
- 일반 권한으로 관리자 전용 작업 수행
- 파일 속성 변경 없이 보호된 파일에 작업 시도
● 결론
OSError - operation not permitted on system file
오류는 시스템 보호 파일에 대해 허용되지 않은 작업을 시도할 때 발생합니다. 파일 작업은 항상 사용자 권한과 시스템 보안을 고려하여 신중하게 수행해야 하며, 테스트는 별도의 안전한 경로에서 진행하는 것이 좋습니다.
728x90