현재 유저의 이름에 따라 다르게 실행하는 함수 구현

Python에서 현재 실행 중인 시스템의 사용자를 가져오고, 사용자 이름에 따라 다른 동작을 수행하려면 getpass 모듈의 getuser() 메서드를 사용할 수 있습니다.


기본 예제

getpass.getuser()를 사용하여 현재 시스템 사용자의 이름을 가져올 수 있습니다.

코드 예시

import getpass

# 현재 사용자 이름 가져오기
current_user = getpass.getuser()
print(f"Current user: {current_user}")

출력

Current user: ethan

사용자에 따라 다른 작업 실행

아래는 사용자 이름에 따라 특정 동작을 실행하는 함수의 예제입니다.

코드 예시

import getpass

def execute_based_on_user():
    # 현재 사용자 이름 가져오기
    current_user = getpass.getuser()

    # 사용자 이름에 따라 다르게 동작
    if current_user == "ethan":
        print("Hello Ethan! You have admin privileges.")
        # Ethan 전용 동작
    elif current_user == "alice":
        print("Hi Alice! Limited access granted.")
        # Alice 전용 동작
    else:
        print(f"Hello {current_user}! Default access granted.")
        # 기본 동작

# 함수 실행
execute_based_on_user()

출력 (사용자에 따라 다름)

Hello Ethan! You have admin privileges.

또는

Hi Alice! Limited access granted.

참고사항

  • getpass.getuser()는 환경변수 LOGNAME, USER, LNAME, USERNAME 중 첫 번째로 유효한 값을 반환합니다.
  • 보안 주의사항: 사용자 이름은 신뢰할 수 없는 환경에서는 보안적으로 민감하지 않은 작업에만 사용하는 것이 좋습니다.

추가 기능: 사용자 이름 기반 권한 시스템

아래는 사용자 이름에 따라 권한을 설정하는 간단한 예제입니다.

코드 예시

import getpass

def get_user_permissions():
    # 사용자별 권한 설정
    permissions = {
        "ethan": "admin",
        "alice": "read-only",
        "bob": "editor"
    }
    # 현재 사용자 가져오기
    current_user = getpass.getuser()

    # 권한 가져오기
    user_permission = permissions.get(current_user, "guest")
    return user_permission

# 권한 확인
permission = get_user_permissions()
print(f"Current user permission: {permission}")

출력

Current user permission: admin

참고 자료

  1. Python 공식 문서 - getpass 모듈
  2. Python getuser 동작 설명

+ Recent posts