パスワードなしで実行できるように、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/...