root以外のユーザーにLinuxバッファキャッシュをクリアする方法

root以外のユーザーにLinuxバッファキャッシュをクリアする方法

Debian wheezy VMで実行されているPythonスクリプトからLinuxバッファキャッシュを消去する必要があります。

私はrootとして実行していますが、rootsync; echo 3 | sudo tee /proc/sys/vm/drop_caches権限を持っていないユーザーがスクリプトを実行しています。

私は次の可能性を考えてみました。

  • ユーザーにファイルへの書き込み権限を付与します。/proc/sys/vm/drop_caches (私はそれが許可されていないので動作しないようですchmod 646 /proc/sys/vm/drop_caches。)
  • setuidをonに設定するとtee機能しますが、ユーザーは続行できます。アペッシュ*tそしてtee
  • スクリプトでsetuidを設定し、スクリプトに対するユーザーの書き込み権限を削除して、ユーザーが変更できないようにすることができます(ただし、繰り返しますが、ユーザーがコードと対話する可能性があるため、これはうまくいきません)。
  • あるいは、次の内容を含む小さなbashスクリプトを書くこともできます。Linuxバッファキャッシュの消去次に、ユーザーに対する書き込み/読み取り権限、setuidを削除し、実行権限を追加します。

この問題を解決する最も賢い方法は何ですか?

ベストアンサー1

リストの4番目の可能性(セキュリティディレクトリに小さなsetuidスクリプトを書く、たとえばユーザーが/usr/local/bin変更することはできません)だけが機能し安全であるかもしれませんが、最近では頻繁に使用されています。ディストリビューションで無効になっています。

より簡単でより良いオプションは、/ etc / sudoersに次の行を追加することです(visudoたとえば、これに使用)。

YOURUSERNAME     ALL = NOPASSWD: /sbin/sysctl vm.drop_caches=3

次に、次の行を含めます。

sudo /sbin/sysctl vm.drop_caches=3

あなたのスクリプトから。

おすすめ記事