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

Python으로 디렉터리 소유자 변경하는 방법 (pwd, grp, os 모듈 활용)

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

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

  • pwd 모듈: 사용자 이름(user name)으로부터 UID(사용자 ID)를 조회합니다.
  • grp 모듈: 그룹 이름(group name)으로부터 GID(그룹 ID)를 조회합니다.
  • os 모듈: os.chown() 함수를 통해 실제 소유자 변경 작업을 수행합니다.

예제 코드

import pwd
import grp
import os

uid = pwd.getpwnam("nobody").pw_uid
gid = grp.getgrnam("nogroup").gr_gid

path = 'my_folder'
os.chown(path, uid, gid)

코드 설명

pwd.getpwnam("nobody")는 시스템 계정 정보 데이터베이스에서 "nobody"라는 사용자의 정보를 조회한 뒤, 그중 pw_uid(사용자 ID) 값을 반환합니다. 마찬가지로 grp.getgrnam("nogroup")은 "nogroup" 그룹의 gr_gid(그룹 ID)를 반환합니다.

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

주의 사항

  • 소유자 변경 작업은 일반적으로 루트(root) 권한이 필요합니다. 권한이 없으면 PermissionError가 발생할 수 있습니다.
  • 존재하지 않는 사용자나 그룹 이름을 조회하면 KeyError가 발생하므로, 상황에 따라 예외 처리를 추가하는 것이 좋습니다.
  • 하위 디렉터리와 파일까지 재귀적으로 소유자를 변경하려면 os.walk()와 함께 반복 처리해야 합니다.