Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 파일 및 디렉터리 소유자 변경하는 방법

Python에서는 pwd, grp, os 모듈을 함께 사용하여 파일이나 디렉터리의 소유자를 손쉽게 변경할 수 있습니다.

각 모듈의 역할은 다음과 같습니다.

  • pwd 모듈: 사용자 이름을 기반으로 UID(사용자 ID)를 조회합니다.
  • grp 모듈: 그룹 이름 문자열을 기반으로 GID(그룹 ID)를 조회합니다.
  • os 모듈: os.chown() 함수를 통해 실제 소유자를 변경합니다.

예제 코드

import pwd
import grp
import os

# 'nobody' 사용자의 uid와 'nogroup' 그룹의 gid를 가져옵니다
uid = pwd.getpwnam("nobody").pw_uid
gid = grp.getgrnam("nogroup").gr_gid

# 소유자를 변경할 경로 지정
path = 'my_folder'

# 소유자 변경 실행
os.chown(path, uid, gid)

주요 포인트

pwd.getpwnam()은 사용자 이름을 인자로 받아 해당 사용자의 정보가 담긴 객체를 반환하며, 이 객체의 pw_uid 속성으로 UID에 접근할 수 있습니다. 마찬가지로 grp.getgrnam()은 그룹 정보 객체를 반환하고, gr_gid 속성으로 GID를 얻습니다.

마지막으로 os.chown(path, uid, gid)를 호출하면 지정한 경로의 파일 또는 디렉터리 소유자와 그룹이 변경됩니다.

주의 사항

파일 소유자를 변경하려면 일반적으로 루트(root) 권한이 필요합니다. 권한이 부족한 경우 PermissionError가 발생할 수 있으므로, 필요에 따라 sudo로 스크립트를 실행해야 합니다. 또한 이 방법은 Unix 계열 시스템(Linux, macOS 등)에서만 동작하며, Windows에서는 pwd 모듈을 사용할 수 없습니다.