2010-08-17 7 views
0

쉘 스크립트를 작성 중입니다. 조건에서 스크립트는 su - xxx와 같은 사용자를 변경하고 일부 명령/스크립트를 실행해야하며 사용자 상호 작용을 위해 해당 사용자/세션에 로그인해야합니다. . 사용자가 exit를 입력하면 해당 세션을 종료하고 스크립트로 돌아와야합니다.쉘 스크립트에서 su 사용하기

su - xxx -c "명령"을 사용해 보았지만 명령을 실행 한 후에 세션을 종료합니다. 명령을 실행 한 후에 해당 세션을 계속 사용하려면 수동으로 종료 (exit를 입력)하여 해당 세션을 닫고 스크립트로 돌아 가야합니다.

모든 힌트

답변

0

무엇을 의미 "사용자 상호 작용을위한 해당 사용자/세션에 로그인 유지해야한다"않습니다 .. 당신의 제안에 대해 .... 사전에 ..

감사를 할 것인가? 사용자에게 명령을 입력 할 수 있도록 일반 쉘 프롬프트를 제공 하시겠습니까?

이렇게하려면 별도로 쉘을 시작해야합니다. 시도 :

#!/bin/bash 
echo Doing stuff... 
echo Starting shell. Type "exit" when done. 
sudo su - -c bash 
echo Thanks for playing! 

그러면 사용자의 하위 셸이 시작됩니다. 하위 쉘이 종료되면 (대개 사용자가 exit/Ctrl-D를 입력 할 때) 스크립트가 계속됩니다.

+0

답장을 보내 주셔서 감사합니다. – srikant

+0

새 세션으로 일부 별명을 내보내려는 시도가 있습니다. 별칭 -x를 시도했지만 작동하지 않습니다. – srikant

0

아마도 가장 쉬운 방법은 bash을 명령 목록의 마지막 명령으로 시작하는 것입니다.

+0

답장을 보내 주셔서 감사합니다. – srikant

+0

새 세션으로 일부 별명을 내보내려는 시도가 있습니다. 별칭 -x를 시도했지만 작동하지 않습니다. – srikant

+0

별칭을 전달할 수 있다고 생각하지 않습니다. - su가 방해가됩니다. 'su -'는 어쨌든 로그인 세션을 시작합니다. –

관련 문제