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

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 동작 설명

리눅스에서 크론탭으로 정기적인 스케쥴에 대한 설정이 가능하다. 


- 크론탭 명령어 추가

crontab -e 


- 크론탭 명령어 보기: 

crontab -l  


- 크론탭 삭제 :

crontab -r


- 크론탭 재식작:



크론탭 필드 


분 시 일 월 년 명령어


ex) * 1 * * * python = 매일 1시 python


매분:  * * * * * 

매시:  * 1 * * * 

매일: 

매월 


- 크롭탭 로그 장소

/var/log/cron


로그확인: tail -30 /var/log/cron


추가되는 로그 지속적으로 확인하기 

tail 명령어에 관한 포스팅은 여기

크론탭 사용시 주의사항
크론탭은 자체적으로 가장 최소화된 환경으로 실행되기때문에 로컬에서 지정된 경로의 프로그램으로 실행되지 않을수 있다. 
그렇기때문에 명령어의 실행프로그램을 절대경로 지정해주어야한다

실제로 
python2.7 



참고자료:

1. http://www.tested.co.kr/board/Study/view/wr_id/15/sca/5

2. http://kthan.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4Linux-%ED%81%AC%EB%A1%A0%ED%83%ADcrontab-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95


'Linux (Ubuntu based) > CentOS' 카테고리의 다른 글

리눅스 방화벽 설정 Iptables  (0) 2016.10.18

tail 명령어로 기록되는 로그에 대해 실시간으로 체크하자 


옵션 


-f 업데이트에 대해 지속저록 


-n 출력하고자 하는 행의 갯수 (파일의 끝 기준) 


명령어 예: 


tail -f -n 20


끝에 20 줄 실시간 보기


실시간 로그 보그 


더많은 옵션은 


man tail 을 참조하자 


참고자료:

http://windfree.tistory.com/40

'Linux (Ubuntu based)' 카테고리의 다른 글

Centos 에서 폴더 tree 구조 보기  (0) 2016.07.22
Socket 이란?  (0) 2014.11.06
Ubuntu Mysql 설치  (0) 2014.10.30

이클립스 기준 톰캣 7.x 버전으로 설정


CENTOS 기준


$CATALINA_HOME/catalina.bat 파일 안에 


CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"


* 중요 

카탈리나 아래명령어와 함께 재실행

catalina.sh jpda start



안에 위에것을 추가해주고 톰캣을 재시작해준다. 

* 8000은 자기 포트번호에 맞게 변경한다.


* 당연한 이야기지만 서버측에서도 포트번호 8000번을 열어주어야한다. 보안이 강화된 환경에서 라우터 또는 방화벽에서 포트번호를 막을수도 있다. 필자는 이것때문에 원인을 찾지 못하고 삽질을.. 



이제 이클립스를 설정해주어야한다.

Run - Debug Configurations 


Remote Java Application 항목에서 오른쪽 클릭후 New를 클릭해준다


Project를 디버깅하고자는 프로젝트를 선택하고


서버가 존재하는 아이피를 클릭하고

위에 카탈리나 bat파일에서 입력한 포트번호를 입력한다




설정완료 후 Debug 버튼을 클릭하면 디버깅 Perspective 로 전환되는 것을 볼수 있다.


참고자료:

http://wonzopein.com/56

http://bryan7.tistory.com/143

http://stackoverflow.com/questions/3835612/remote-debugging-tomcat-with-eclipse


Eclipse 내에서 Java doc 코멘트를 자동 생성해주는 방법 단축키


두가지 방법이 있는데 메소드 이름 위에서


1. 단축키

Alt+ Shift J


2. /** + Enter 


아래와 같이 사용할수 있다.

/**
 * @param fooPa
 */
public void foo(String fooPa) { }


'Tools' 카테고리의 다른 글

Scala IDE eclipse 맥에서 실행시 에러 현상  (0) 2016.11.18
Hyper-V 와 VirtualBox 쉽게 변경하기  (0) 2016.10.05

+ Recent posts