私のスクリプトでは、特定の(デバイスドライバ)ファイルをFD3として開きたいとします。 exec 3<
は、このような場合には正常に動作します。bash:sudo権限を持つファイル記述子を開く
しかし、デバイスドライバファイルはrootとしてしか読めないので、sudoを使ってrootとしてFDを開く方法を探しています。
- > sudo権限でファイル(ディスクリプタ)を開くにはどうしたらいいですか?
残念ながら、スクリプトの実行時にファイルを開いたままにしておく必要があります。そのため、パイピングのようなトリックは機能しません。 また、私はsudo権限の下でスクリプト全体を実行したくありません。
のsudo +幹部は、全く不可能である代替の解決策は、私がsudo tail -f
のような背景で、プログラムを呼び出すことができることである場合 - しかし、これは問題の別のセットをもたらす:
- かどうかを確認する方法プログラムの呼び出し成功
- 呼び出しが成功しなかった場合のエラーメッセージの取得方法
- 実行終了時にプログラムを "強制終了"する方法。
EDIT:
- オープンは/ dev/tpm0
- は、ユーザーの権限で私のコマンドを実行し、root権限を必要とする
- 近くの/ dev/tpm0 : は私が達成したいものを明確にするために、
なぜなら、/ dev/tpm0を開くと他のコマンドがtpmにアクセスできなくなりますituation。
ありがとうございました
解決しようとしている問題を示すコードを表示すると、これは簡単に答えることができます。 – larsks
[OK]を私が達成したいことは次のとおりです。 *オープンは/ dev/tpm0ルートの権限を必要とする *ユーザー権限で、私のスクリプトを行う必要があるものは何でも *近くには/ dev/tpm0 この背後にある理由は、私ということですスクリプトの実行中に/ dev/tpm0へのアクセスをブロックする必要があります。 /dev/tpm0はブロッキング文字デバイスです。 – PeterH
なぜあなたはrootとしてfdを開くことができますか? – 123