![sudo를 사용하여 다른 사용자로 스크립트의 한 부분에서 여러 명령을 실행하려면 어떻게 해야 합니까?](https://linux55.com/image/40301/sudo%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%8B%A4%EB%A5%B8%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A1%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%ED%95%9C%20%EB%B6%80%EB%B6%84%EC%97%90%EC%84%9C%20%EC%97%AC%EB%9F%AC%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
다음 명령을 실행하려고 합니다.
if [! -f .owner ]; then
creator=$(whoami)
sudo -u appuser ksh
echo "$creator" >> .owner
mkdir test1 test2 test3
exit
fi
그러나 파일/폴더는 스크립트를 실행하는 사람이 생성합니다. appuser가 이를 생성할 수 있는 방법이 있습니까?
편집하다: sudo -l
반품(appuser) NOPASSWD: ALL
답변1
노력하다:
#!/bin/bash
id
touch script-run-user.file
sudo -u appuser 'ksh' <<EOF
# add list of cmds to execute
id
touch appuser.file
EOF
편집하다: 방금 업데이트되었습니다. 확인해 보세요.여기에 파일. EOF = "파일 끝", 임의의 이름.