sudoersにecho writeコマンドを追加する方法

sudoersにecho writeコマンドを追加する方法

パスワードなしで実行できるように、echoを使用してsudoersにファイルを書き込むコマンドを追加したいと思います。

通常、コマンドは次のようになります。

sudo sh -c 'echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo'

(sh -cはsudoから直接echoを実行すると拒否された権限を返すので存在します)

通常、ユーザーがパスワードなしでsudoを介してコマンドを実行できるようにするには、sudoersファイルに次のものを追加します。

cestarian ALL = NOPASSWD: /bin/sh

しかし、私は簡単に悪用することができると思うので、shがパスワードなしで実行されることを自然に望んでいませんが、この特定のコマンドが機能したいのですが...

cestarian ALL = NOPASSWD: /bin/sh -c 'echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo'

これはうまくいきません。私はsudoerが特定のパラメータを持つコマンドを受け入れることができるはずですが、この場合はうまくいかず、その理由もわかりません。

私はそれを働かせる方法がほしい。

ベストアンサー1

sudoコマンドの引数として使用すると、特に処理されません'。 sudoを"使用して解決された内容を一覧表示すると、sudo -llそれを確認できます。あなたの例は、それを言うでしょう

/bin/sh -c 'echo 1 > /sys/...'

実際の引用を期待するので、たとえば、次のように一致します。

sudo sh -c "'echo 1 > /sys/...'"

あなたができることは、sudoersファイルから引用符を削除し、バックスラッシュを使用してスペースをエスケープすることです。

cestarian ALL = NOPASSWD: /bin/sh -c echo\ 1\ >\ /sys/...

おすすめ記事