2011-08-01 2 views
122

user2로 실행되어야하는 script.sh가 있습니다. 그러나이 스크립트는 내 응용 프로그램에서 user1 아래에서만 실행할 수 있습니다.암호없이 다른 사용자로 스크립트를 실행하는 방법

su user2 -C script.sh 

를하지만 암호없이 실행할 수 :

나는 다음과 같은 명령을 실행하고 싶습니다.

나는 user1에서 user2 이하에서만 script.sh를 실행할 수 있기 때문에 매우 제한적이기를 바란다.

나는 이것을 sudoers 파일과 함께 시도해 보았고 몇 시간의 노력 끝에 끝없이 혼란스러워했다.

누군가가 sudoers 사용과 같은 일반적인 것 대신이 방법을 수행 할 수있는 방법에 대한 명시적인 예를 제공 할 수 있다면 크게 감사하겠습니다.

+13

나는 특히 가까이서하지 않습니다. 이것은 특정 방식으로 시스템을 프로그래밍하는 방법에 대한 질문입니다. 따라서 쉘 프로그래밍에 관한 것이므로 프로그래밍에 대한 질문 인 SO의 범위 내에 있습니다. 많은 사람들이이 주제를 너무 혐오 스럽다고 생각하지 않는다. 질문과 답변에는 모두 많은 득표 수가 있습니다. –

답변

97

전화 visudo 및이 추가 :

user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh 

명령 경로는 절대를해야합니다! 그런 다음 user1 셸에서 sudo -u user2 /home/user2/bin/test.sh으로 전화하십시오. 끝난.

+2

우분투 도움말에는 [sudoers에 대한 좋은 설명] (https://help.ubuntu.com/community/Sudoers) 형식이 있습니다. sudoers에 대한 맨 페이지는 추악합니다 : ( – Mifeet

165

시도 실행 : 이것은 당신이 사용자로 sudo를 할 수있는 권한이 주어진 사용자 이름과 같은 명령을 실행

su -c "Your command right here" -s /bin/sh username 

.

+10

이것은 sudo 권한과 함께 일반 사용자로 작동합니다 :'sudo su -c "바로 명령"-s/bin/sh otheruser' – rubo77

+5

분명히 모든 Mac 사용자를위한 메모입니다. 구문은 약간 다릅니다 :'su username -c "command". – NHDaly

+1

다른 사용자로'screen'을 시작하려고한다면 이것은 도움이 될 것입니다 - http://www.linuxquestions.org/questions/linux-software 시작과 다른 사용자를위한 running-screen-command-for-401990/# post2041890 – Mint