cap_setfcap関数を含むファイル(progと呼びます)があります。これを使用してprog(ファイル自体)に完全な機能を付与できますか?お勧めできないことを知っています。できることを知りたかったです。
編集:明確にするために:システム内のすべての機能(すべてのセット)をprogに与えたいと思います。私はファイルがそれ自体で完全な「ファイル機能」を付与できることを知っています。問題は、そのファイルが自分にも完全な「ランタイム機能」を与えることができるかということです。
ご協力ありがとうございます!
答え1
はい。
ファイル機能をすべての項目に付与したいが、完全性チェックや特定の型の認証を行うコードを含まないプログラムを作成する場合に可能です。 (プログラマはさまざまなタスクを実行するコードを書くことができます。)
実際には/sbin/setcap
次のようなプログラムです。
$ cp /sbin/setcap ./easycap
$ chmod go-rwx ./easycap
$ sudo ./easycap cap_setfcap=p ./easycap
$ ./easycap =ep ./easycap
$ /sbin/getcap ./easycap
easycap =ep
setuid-root
同じことができるプログラムとは異なり、chmod go-rwx ./easycap
この強力なバイナリはユーザーに限定されますwhoami
。
プログラムにその機能を付与するには、cap_setfcap
プログラムはどこかでその機能をインポートする必要があります。この場合、sudo
ユーザーは書き込み可能なすべてのバイナリにファイル機能を提供するためにこのバイナリ権限を付与します。
つまり、sudo
発信者は全体の配列が良いアイデアだと思います。このように、またはシングルユーザーシステムでは、これが悪用される可能性があるすべての方法を知っている管理者にとって非常に便利です。他の可能性が高いシナリオでは、これは良い考えではないかもしれません。