os.chmod()로 파일 권한 변경하기
Python에서 파일의 권한을 변경하려면 os.chmod(file, mode) 함수를 사용하면 됩니다. 이때 mode 값은 반드시 8진수(octal) 형태로 지정해야 하며, 숫자 앞에 0o 접두사를 붙여야 합니다.
예를 들어 파일에 읽기·쓰기·실행 등 모든 권한을 부여하려면 권한 값을 0o777로 설정하여 다음과 같이 작성합니다:
>>> import os
>>> os.chmod('my_file', 0o777)
반대로 파일을 읽기 전용(read-only)으로 만들고 싶다면 소유자·그룹·기타 사용자에게 읽기 권한만 부여하는 0o444를 사용하면 됩니다.
stat 모듈의 플래그 활용하기
stat 모듈에서 제공하는 상수(플래그)를 함께 사용하면 더욱 직관적으로 권한을 지정할 수도 있습니다. 각 플래그에 대한 자세한 설명은 공식 문서(https://docs.python.org/library/stat.html)에서 확인할 수 있습니다.
subprocess로 chmod 명령어 호출하기
또 다른 방법으로는 subprocess 모듈을 통해 시스템의 chmod 명령어를 직접 실행하는 방식이 있습니다:
>>> import subprocess
>>> subprocess.call(['chmod', '0444', 'my_file'])
이 방법은 Unix/Linux 계열 환경에서만 동작한다는 점에 유의해야 합니다. 운영체제에 구애받지 않는 이식 가능한 코드를 작성하려면 os.chmod()를 사용하는 것이 더 좋습니다.