cap_dac_override をテストしようとしています。簡単な hello world を書きました。プログラムをコンパイルし、実行可能ファイルからすべての権限を削除しました。
現時点では、./hello を実行してもプログラムを実行できませんが、これは正しいです。次に、ユーザーに実行権限がなくてもプログラムを実行できるように機能を適用したいと思います。
プログラムを実行できるように cap_dac_override をどのように設定すればよいか教えていただけますか。それとも、cap_dac_override の使い方が完全に間違っているのでしょうか。
setcap cap_dac_override=ep hello
答え1
機能と権限を混同しています。
のファイルモードビットまたは権限説明するファイルで何ができるかファイルからすべての権限を削除すると、OS に対して、誰もそのファイルを読み取ったり、書き込んだり、実行したりできないように指示したことになります。
一方、ファイル機能はファイルができることまたは、正確には、そのプログラム ファイルから生成されたプロセスが何ができるか、そうでなければ何ができないかということです。
を使用するとsetcap cap_dac_override=ep hello
、プログラムのhello
実行時に通常の権限チェックを上書きできます。ただし、 を実行しようとすると通常の権限チェックが適用されることは変わりませんhello
。