問題タブ [linux-capabilities]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Perl で Linux 機能を編集する
cap_set_proc
C プログラムでは、 fromを使用して機能を編集できますlibcap
。Perl プログラムで同じことを達成するにはどうすればよいですか?
c - capset が構造体へのポインタで失敗する
2 つのコード サンプルがあります。
まず、正しく実行されます。
第二に、fail: Operation not permitted
:
どちらのコード サンプルも同じだと思います。
最初のものを実行すると、正しく実行されます(構造体へのポインターを使用します)。
しかし、2 番目は失敗します (構造体のインスタンスを使用します)。
どうしてか分かりません。手伝って頂けますか?
python - Python を使用してファイル機能を読み取る方法は?
Linux システムでは、ファイル機能を使用して setuid ビットを追加するよりも、ルート権限をより選択的に付与できます。詳細capabilities(7)
については、を参照してください。これらはファイルの属性であり、プログラムを使用して読み取ることができますgetcap
。これらの属性は Python でどのように取得できますか?
getcap
たとえば、このような質問に答えるためにプログラムを実行するsubprocess
ことは可能ですが、非常に多くの機能を取得する場合は望ましくありません。
を使用して解決策を考案できるはずctypes
です。このアプローチや、このタスクを容易にするライブラリに代わるものはありますか?
c - RLIMIT_NPROC 値を編集するより良い方法
私のアプリケーションは接続スレッドごとに作成します。ゼロ以外のユーザー ID でアプリケーションが破壊され、スレッド数がデフォルト値の 1024 を超えることがあります。この番号を編集したいので、選択肢がほとんどありません
ルートとして実行 [非常に悪い考えであり、セキュリティについても妥協する必要があるため、削除する]
特権のないユーザーの下で実行するにはsetcapを使用し、機能CAP_SYS_RESOURCEを付与します。次に、プログラムにコードを追加できます
他には/etc/securitylimits.confを編集することです 。ここで、開発ユーザーのエントリを作成して、たとえば行を入れることができます
ここで、10k で十分です。したがって、ソース コードを変更することに少し気が進まないので、最後のオプションに進む必要があります。そして、私はより堅牢で標準的なアプローチが何であるかを知りたいと思っています。
ご意見をお待ちしております。よろしくお願いします:)
PS: 1 つのプロセスが 1,000 を超えるスレッドで処理される場合はどうなりますか。もちろん、私は32GBのRAMも持っています
c - Linuxプロセスでいくつかの機能を設定してから、スーパーユーザー権限を削除しますか?
C プログラムでは、対処しRLIMIT_NPROC
、RLIMIT_NOFILE
制限し、さらに 1024 未満のポートにバインドする必要があります。私のプログラムには 2 つの機能しか必要ないため、非特権ユーザーでこれを実行することを考えています。
ここで、プロセスの機能を設定し、setuid()
. ここで、機能のセット リストを保持するプロセスを root 権限なしで fork すると、プログラムは最小限の権限で実行され続けます。私の計画の非常に大まかな概要:
ここでは、syscall を使用して機能を設定することができません。そのような機能のアイデアは大きな助けになります。
setcap
PS: コマンド ユーティリティを使用してキャップを割り当てることもできcap_set_file()
ますが、バイナリのパスについて毎回確信があるわけではないため、別の方法でこれを行いたいと考えています。
プロセスとサブプロセスのステータスを確認するためのいくつかの便利な proc コマンドcat /proc/<PID>/task/<PID>/status
、cat /proc/<PID>/limits
android - Linux Android でファイルのファイル機能を取得する
Android ファイル システム上のファイルに許可された機能を取得する方法を考えています。libcap は利用できないため、その機能を使用してこれを取得することはできません。
他のオプションはありますか?
python - setcap cap_net_raw なしで Linux で raw ソケットを開く
Python に cap_net_raw 機能を提供せずに、Linux (Python を使用) で raw ソケットを開きたいです。プログラムではなく、ユーザーにこの機能を持たせたいのです。Ubuntu 12.4 を使用しています。