개요
리눅스 환경에서 파이썬을 사용하면 파일이나 디렉터리의 소유자(사용자)와 그룹을 손쉽게 변경할 수 있습니다. 이 작업에는 세 가지 표준 라이브러리 모듈이 활용됩니다.
- pwd 모듈: 사용자 이름으로부터 UID(사용자 ID)를 조회합니다.
- grp 모듈: 그룹 이름 문자열로부터 GID(그룹 ID)를 조회합니다.
- os 모듈: os.chown() 함수를 통해 실제 소유권 변경을 수행합니다.
예제 코드
import pwd
import grp
import os
# 사용자 이름으로 UID 조회
uid = pwd.getpwnam("my_name").pw_uid
# 그룹 이름으로 GID 조회
gid = grp.getgrnam("my_group").gr_gid
# 권한을 변경할 경로 지정
path = 'my_folder'
# 소유자 및 그룹 변경
os.chown(path, uid, gid)코드 설명
위 코드는 다음 순서로 동작합니다.
- pwd.getpwnam(): "my_name"이라는 사용자 계정 정보를 시스템의 비밀번호 데이터베이스에서 찾아 해당 사용자의 UID를 반환받습니다.
- grp.getgrnam(): "my_group"이라는 그룹 정보를 그룹 데이터베이스에서 조회하여 GID를 반환받습니다.
- os.chown(): 지정한 경로(path)의 소유자를 위에서 구한 UID와 GID로 변경합니다.
주의 사항
os.chown() 함수는 일반적으로 관리자(root) 권한이 필요합니다. 권한이 없는 상태에서 실행하면 PermissionError가 발생할 수 있으므로, sudo 권한으로 스크립트를 실행하거나 적절한 시스템 권한을 확보한 후 사용해야 합니다. 또한 디렉터리뿐 아니라 파일에도 동일한 방식으로 적용할 수 있습니다.