다른 사용자 ID로 로그인하고 명령을 실행하려면 어떻게 해야 합니까?

다른 사용자 ID로 로그인하고 명령을 실행하려면 어떻게 해야 합니까?

다른 사용자 ID로 다음 쉘 스크립트를 실행하고 있습니다. 하지만 이 스크립트를 실행할 때마다 "sudo su ${USER_ID}"로 원활하게 실행됩니다. 그런 다음 실행이 중지되었습니다. 스크립트를 통해 다른 사용자로 로그인한 후 전체 명령을 실행하는 방법을 제안해주세요.

스크립트는 다음과 같습니다.

#!/bin/bash

PATCH_FILE=" "
USER_ID=" "
Grp_ID=" "

sudo mv ${PATCH_FILE} /tmp
sudo chown ${USER_ID}:${Grp_ID} /tmp/${PATCH_FILE}
sudo su ${USER_ID}
cd /tmp
unzip ${PATCH_FILE}

답변1

스크립트는 실행을 중지하지 않고 지시된 대로 수행합니다. 대화형 쉘을 시작하고 쉘은 입력을 기다립니다. 사용자가 지시하지 않는 한 스크립트에서 입력을 읽지 않습니다.

sudo su ${USER_ID} << EOF
cd /tmp
unzip ${PATCH_FILE}
EOF

이는 sudo su거의 항상 불필요하다는 점에 유의하십시오.

위의 예는 행을 표준 입력으로 전달하는 일반적인 문제를 해결합니다. 이것이 반드시 귀하의 상황에 가장 적합한 솔루션은 아닐 수도 있습니다.

관련 정보