sudo -u가 사용자 소유 폴더에서 작동하지 않는 이유 [중복]

sudo -u가 사용자 소유 폴더에서 작동하지 않는 이유 [중복]

마운트된 드라이브에 디렉터리 계층 구조가 있다는 점을 고려

|-ssd-drive
    |-main
        |-sub

다음은 main 및 sub 폴더에 대한 액세스입니다.

 drwxrwxrwx. 12 poweruser devgroup 4096 Oct 26 18:45 main
 drwxrwxr-x. 8 poweruser poweruser 4096 Oct 26 19:01  sub

poweruser이제 사용자를 대신하여 쉘 스크립트를 실행하고 디렉토리에 로그를 출력하려고 하면 sub권한 문제로 인해 실패합니다.

[myaccount@vm-002 log]$ sudo -u poweruser /script.sh  > /ssd-drive/main/sub/app.log 2>&1
-bash: /ssd-drive/main/sub/app.log: Permission denied

이 경우 왜 sudo -u poweruser작동하지 않습니까? 자신이 속한 디렉토리의 소유자입니다. 

답변1

Steeldriver가 언급했듯이 리디렉션은 sudo의 일부가 아닙니다.

해결 방법은 bash를 통해 실행하는 것입니다.

sudo -u poweruser bash -c "/script.sh  > /ssd-drive/main/sub/app.log 2>&1"

이런 방식으로 리디렉션은 다음과 같이 실행되는 새로운 bash 인스턴스에 의해 처리됩니다.poweruser

관련 정보