次の bash スクリプトに問題があります: - システムの起動時またはオンデマンドで「root」によって実行される - 「stefano」特権でスクリプトを実行する - 「root」または「/」によってトリガーされた場合、ログ ファイルの出力をリダイレクトするdev/stdout" ("stefano" によってトリガーされた場合):
#!/bin/bash
[ "$1" == "log" ] && log="$2" || log="/dev/stdout"
if [ "`/usr/bin/whoami`" != "stefano" ]; then
echo "You are not allowed"
exit 9
fi
runuser -s /bin/bash stefano -c "echo I am Stefano >> $log"
この場合、私はbash: /dev/stdout: Permission denied
コマンドがルートによってトリガーされた場合、ユーザー「stefano」が /dev/stdout に書き込めないのはなぜですか?
明らかに as としてstefano> echo "I am Stefano" >> /dev/stdout
動作してもエラーは発生しません。
よろしくお願いします。ステファノ、ミラノ、イタリア