権限のないユーザーがシステムの速度を落とすには多くの方法があり、同期を実行することは効率的ではありません。一方、ファイルシステムのデータをディスクにコミットすることは非常に正当な要求であるため、ユーザー(およびそのプロセス)がそれを行うことを禁止することは過剰です。
いずれにせよ、私はあなたの「不必要なディスク書き込み」ステートメントについて同意しません。これらの書き込みは確かに必要であり、とにかくしばらくすると自動的に行われます。
同期呼び出しがその実装に応じて特定のことを行う保証はありません。syncの呼び出しは、POSIX標準で定義されているように、OSがファイルシステムキャッシュをフラッシュするための「提案」に過ぎず、必ずしもフラッシュがすぐに実行されるとは限りません。より正確には、呼び出しはOSにキャッシュフラッシュをスケジュールするように要求しますが、Linux実装はそれが発生するのを待ってから戻りますが、すでにスケジュールされた時間より前に発生する保証はありません。
さらに、syncを連続して複数回呼び出しても、システムがそれほど遅くなることはありません。キャッシュがフラッシュされると、プロセスがファイルにアクティブに書き込んでいない場合、キャッシュは空になるため、同期は無効になります。
ユーザーがシステム上で同期を実行するのを本当に避けたい場合は、次のコマンドを実行するだけです。
mv /bin/sync /bin/.sync
ln /bin/true /bin/sync
これはユーザーにはほとんど気付かれず、同期を実行してからアンマウントせずにストレージデバイス(例:usbサムドライブ)を削除するだけの場合を除いて、悪影響はありませんが、これらのユーザーはすでにとにかくばかげています。
以前の/ bin / syncリンクと/ bin / trueの組み合わせはお勧めしません。sync
確かにいくつかのケースで役立ちます。たとえば、残酷なシャットダウン(電力不足、システムパニックなど)がすぐに発生するのではないかと心配する場合は、ファイルシステムの内容を保持するのに役立ちます。これは私が正当な要求と呼んでいるものです。