権限のないスクリプトにファイルに対する権限を放棄させる方法

権限のないスクリプトにファイルに対する権限を放棄させる方法

そのユーザーとして実行されているプロセスで何らかの方法で変更できないように、権限のないユーザーとして実行されているbashでファイルを免疫としてマークできますか?他のユーザーやルートがこれを変更できる場合は問題ありません。

私のユーザーケースは、別のプロセスを開始する前に設定ファイルを準備することです。プロセスがエラーや意図的な悪用によってファイルを修正するのを防ぎたいと思います。

chmod a-w path簡単にキャンセルできるので、使用したり類似したものは良くありません。プロセスがルートではないため、ファイルの所有権を変更できません。chattr +i pathプロセスにCAP_LINUX_IMMUTABLEがないため使用できません。

そのような変更を行うためにsetuid / sudoプログラムまたは実行可能ファイルにCAP_LINUX_IMMUTABLEを設定するプログラムを使用する唯一のオプションはありますか?

答え1

Apparmorとselinuxを使用して、プロセス権限を細かく制御できます。これには、プロセスにファイルを書き込むのではなく、ファイルを読み取る機能を提供することが含まれます。

火災刑務所よりユーザーフレンドリーなラッパーです。

このオプションは、新しいプロセスを作成するときにファイルへの書き込みアクセスを削除するために使用できます。--read-onlyこれは望むようです。

答え2

acls、sudo、setuidを介して利用できる他のユーザーがいない場合は、最も安全な方法はchmod 444ファイルをingすることです。

ファイルを再びchmodしてo+wmore硬いbash -r --rcfile restricted.rc子プロセスの場合は、制限的な.rcがchmodを防ぐためにPATHを設定するラッパースクリプトを設定できます。これは、bashまたは他のプロセスを呼び出すスクリプトが独自のパスを使用してスクリプトを呼び出したりファイルを変更したりするのを防ぎませんが、明示的にこれを実行したい人はほとんどいません。

しかし、u+wできない場合chattrまたはchflags

関連情報