현재 유저의 이름에 따라 다르게 실행하는 함수 구현
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
참고 자료
- Python 공식 문서 - getpass 모듈
- Python
getuser
동작 설명