2012-05-28 4 views
5

나는 내 프로그램을 실행 sudo를 사용해야합니다 : 내 프로그램에서 git clone을 실행하려고sudo의 프로그램에서 명령을 원래 사용자로 실행하려면 어떻게해야합니까?

sudo ./my_program 

하지만 대신 내 루트 사용자의 SSH 키를 사용하려고합니다. 원래이 프로그램을 호출 한 사용자로이 단일 명령을 실행하는 방법이 있습니까?

나는 내가 할 수있는 것 같아요 :

su - original_user -c "git --version" 

하지만 내가 어떻게 원래 사용자의 사용자 이름을 알아낼 수 있습니까? 아니면 다른 우아한 해결책이 있습니까?

답변

3

sudo 매뉴얼에 $SUDO_USER은 원래 사용자의 사용자 이름을 제공하고 $SUDO_UID은 원래 사용자의 UID를 제공함을 보여줍니다.

+0

그리고'$ SUDO_UID'는 원래 사용자의 UID입니다. –

0

웹 응용 프로그램에서 파일을 만드는 동안 NAS의 Samba에이 문제가있었습니다.

이 경우 나는 실행중인 프로세스를 검색하고 어떤 사용자가 samba를 실행하고 있는지를 결정했습니다. 해당 이름을 격리 한 후 정확한 사용자 계정을 가지고 있습니다. 어쩌면 이것은 당신의 상황에도 효과가 있을까요?

이 경우에는 ps 출력을 필터링하고 프로그램 이름을 조회해야한다고 생각합니다. bash에서 테스트하여 작동하는지 확인하십시오.

+0

죄송합니다. 그 반대입니다. ** ps -u **를 사용하여 활성 사용자를 확인하고 ** command ** 아래 값을 평가하여 시작한 프로세스를 확인하십시오. – Digitalis

관련 문제