sudo: 다른 스크립트에서 시작된 스크립트는 표준 출력을 리디렉션하지 않습니다.

sudo: 다른 스크립트에서 시작된 스크립트는 표준 출력을 리디렉션하지 않습니다.

저는 sudo 1.6.9p23과 함께 AIX 5.3을 사용하고 있습니다. Sudoers 파일은 사용자 fcomartin에게 사용자로서 모든 명령을 실행할 수 있는 권한을 부여합니다 oas.

fcomarti   ALL=(oas) ALL

사용자에게는 oas선택한 옵션에 따라 다른 스크립트를 시작하는 menu라는 bash 스크립트가 있습니다.

문제는 일부 도우미 스크립트가 표준 출력을 사용자 temp소유 텍스트 파일 로 리디렉션한다는 것입니다 oas. 이런 일이 발생하면 사용자에게 올바른 쓰기 권한이 없다는 메시지가 나타납니다.

사용자는 fcomartiksh를 사용하고 다음 명령을 사용합니다.

sudo -u oas bash menu

(사용자가 oasbash를 사용하기 때문에 bash).

메뉴가 시작된 다음 메뉴에서 monitorAv 스크립트를 시작합니다. monitorAv 내부에는 다음 줄이 있습니다 echo > temp. 그러면 사용자에게 fcomarti올바른 쓰기 권한이 없다는 오류가 발생합니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

스크립트를 편집하고 실행하지 말고 sudo something > here이렇게 사용하세요sudo sh -c "something > here"

manredirection매우 유용할 수 있습니다. 에서 검색해 보세요 man sudo.

답변2

마침내 문제를 해결했습니다. sudo의 구문은 다음과 같습니다.

sudo -u oas bash -c "cd /Oas/bin; menu"

이는 메뉴에서 실행되는 일부 도우미 스크립트가 작동하려면 절대 경로가 필요하기 때문입니다.

관련 정보