マウントされたドライブにディレクトリ階層があることを考えます
|-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