タスクの所有者とはまったく異なる特権セットを持つユーザーとして実行可能ファイルを実行することをお勧めします。実際、まったく逆の特権セットを持つ別のユーザーとして実行するのが最善だと聞きました。ランタイムユーザーの特権を制限することは理解できますが、これはsetuid
機能では実現できませんか?
私があなたを正しく理解していれば、あなたは通常のユーザーによって実行され、偶発的な削除を防ぐために関連ファイルを通常のユーザーが書き込めないアプリケーションを持っています。このため、setuidは必要ありません。あなたがする必要があるのは次の線に沿った何かです:
chown -R root.root /opt/theapp
chmod -R g-w /opt/theapp
chmod -R o-w /opt/theapp
chmod 755 /opt/theapp/bin/theexe
つまり、ファイルの所有権をrootに付与し、他のすべてのユーザーに書き込みを許可せず、すべてのユーザーに実行可能ファイルの読み取りと実行を許可しますが、書き込みは許可しません。
これは一般的に悪い考えだと思います。ほとんどの場合、実行可能ファイルに同じ特権を持たせたいと考えています。これは、通常、実行可能ファイルがファイルに対して行うように設計されていることをすべて実行できるようにするためです。たとえば、テキストエディタを非特権ユーザーにsuidにした場合、テキストファイルを編集することはできません...