sudo -uがユーザー所有フォルダで機能しない理由[重複]

sudo -uがユーザー所有フォルダで機能しない理由[重複]

マウントされたドライブにディレクトリ階層があることを考えます

|-ssd-drive
    |-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

関連情報