sudo를 사용하여 bash 스크립트를 실행하고 일반 사용자로 일부 명령을 실행하십시오.

sudo를 사용하여 bash 스크립트를 실행하고 일반 사용자로 일부 명령을 실행하십시오.

sudo를 사용하여 실행해야 하는 다음 스크립트가 있지만 첫 번째 명령(git 명령)은 "ubuntu" 사용자로 실행해야 합니다.

sudo -u ubuntu "git -C linux/build-repo pull"
sudo -u ubuntu "git -C android/build-repo pull"

uoa_image=$(sh linux/build-repo/make.sh | sed -n '1 p')

echo $uoa_image

그러나 sudo로 실행하면 처음 두 명령이 실패하고 make.sh 스크립트를 실행하면 루트가 아니라고 불평합니다.

첫 번째 줄에서는 오류가 발생합니다.

sudo: git -C linux/build-repo pull: command not found
sudo: git -C android/build-repo pull: command not found 

답변1

오류 메시지는 따옴표로 인해 발생합니다.

sudo -u ubuntu git -C linux/build-repo pull

아니요

sudo -u ubuntu "git -C linux/build-repo pull"

답변2

한 가지 옵션:

전체 스크립트를 sudo-to-root로 실행하고 처음 두 줄을 변경합니다 su.

su -c "git -C linux/build-repo pull" ubuntu
su -c "git -C android/build-repo pull" ubuntu
...

두 번째 옵션:

명령 을 찾을 수 있도록 루트의 PATH를 설정합니다 git.

관련 정보