問題タブ [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.

0 投票する
25 に答える
332539 参照

linux - 非ルート プロセスを Linux の「特権」ポートにバインドする方法はありますか?

私以外のユーザーがいないときに、私の開発ボックスにこの制限があるのは非常に面倒です。

私は標準的な回避策を知っていますが、どれも私が望むことを正確に行うものではありません:

  1. authbind (Debian テスト中のバージョン 1.0 は IPv4 のみをサポートします)
  2. iptables REDIRECT ターゲットを使用して、低いポートを高いポートにリダイレクトします(「nat」テーブルは、iptables の IPv6 バージョンである ip6tables にはまだ実装されていません)。
  3. sudo (ルートとして実行することは避けようとしています)
  4. SELinux (または類似)。(これは単なる私の開発ボックスです。余分な複雑さを導入したくありません。)

sysctl非ルート プロセスが Linux の「特権」ポート (1024 未満のポート) にバインドできるようにする簡単な変数はありますか?

編集:場合によっては、機能を使用してこれを行うことができます。

0 投票する
1 に答える
4646 参照

linux - 実行中のプロセスに機能を付与する

すでに実行中のプロセスには、SO_RCVBUFFORCE ソケット オプションを使用するなどの特権命令が必要です。このプロセスは、通常のユーザー プロセスとして実行されています。

このプロセスに機能/許可を与える方法は? ファイルベースの機能設定はまだ夢ですか?

/usr/sbin/setpcapslibcap パッケージとcap_set_proc()apiのユーティリティを試しましたCAP_SETPCAPが、システム (カーネル 2.6.20 の Fedora 4 に基づくレガシー システム) で機能がブロックされているため、別の自己の機能を付与/削除できません。処理する。

そのプロセスに一時的なルート uid を設定することを考えましたが、外部の既に実行中のプロセスの有効な UID を変更する方法はありますか? setuid()/ seteuid()/... 関数は、現在のプロセス (関数を呼び出している人) を変更するだけです。

0 投票する
4 に答える
39487 参照

linux - ユーザーごとにLinux機能を構成することは可能ですか?

Linuxカーネルにはきめ細かい機能がサポートされているようです。これにより、プロセスに権限を付与して、たとえば、プロセスのルート権限を付与せずにrawソケットを開いたり、スレッドの優先度を上げたりすることができます。

ただし、ユーザーごとの機能を付与する方法があるかどうかを知りたいのですが。つまり、rootおよびsuid以外のプロセスがこれらの機能を取得できるようにします。

0 投票する
2 に答える
1232 参照

java - 機能とLinuxとJava

私はJavaアプリケーション用のLinux機能を試しています。インタープリター(JVM)に機能を追加したくないので、単純なラッパーを作成しようとしました(デバッグ情報がstdoutに出力されます)。

このようにして、この実行可能ファイルに機能が設定されていることがわかります。

そしてgetcapショー

継承できるように設定しているので問題ありません。ただし、Javaはまだ特権ポートにバインドすることを望んでいません。

このエラーが発生します:

誰かが私がこれを解決するのを手伝ってもらえますか?

0 投票する
3 に答える
6473 参照

posix - CAP_SYS_RESOURCE でプロセスを実行する方法

Linux POSIX mqueue 実装を使用していますが、問題があります。現在のカーネルでは、メッセージの最大サイズは 1MB ですが、制限を設ける必要はありません。

man mq_overviewプロセスが特権 (CAP_SYS_RESOURCE機能を持つプロセス) である場合、制限はありません。root によって実行されたプロセスには既に特権が与えられていると思っていましたが、「メッセージが長すぎます」というエラーが引き続き表示されます (私のメッセージは 2MB あります)。

CAP_SYS_RESOURCEプロセスに機能を追加するにはどうすればよいですか?

0 投票する
2 に答える
10424 参照

linux - setuid(0) と CAP_SETUID

機能を使用して非ルートとして uid を 0 に変更しようとしていCAP_SETUIDます。次のプログラムがあります。

次のように setuid 機能を割り当てます。

そして、次の出力が得られます

2 番目の printf() もそのCAP_SETUID機能を示していると思います。どういうわけか、私のプロセスは setuid ファイル機能を取得しません。ここで何が間違っていますか?

0 投票する
6 に答える
3994 参照

linux - gdbは実行可能機能を無視しているようです

を利用するプログラムをデバッグしていますlibnetfilter_queue。ドキュメントには、ユーザースペースのキュー処理アプリケーションがCAP_NET_ADMIN機能するための機能が必要であると記載されています。setcap私は次のようにユーティリティを使用してこれを行いました:

getcapa)プログラムが機能し、b)次の出力が返されるため、機能が正しく適用されていることを確認しました。

gdbただし、コマンドラインから(など)を使用してこのプログラムをデバッグしようとする$ gdb ./a.outと、正しいアクセス許可が設定されていないために失敗します。のデバッグ機能は、gdbそれ以外の場合は完全に機能し、通常どおりにデバッグします。

私はこれらの機能をgdbバイナリ自体に適用しようとしても無駄になりました。私はこれを見た目どおりに実行しました(マンページに記載されているように、「i」フラグを使用すると、デバッグ対象者がデバッガーから機能を継承できる可能性があります。

私が見逃している些細なことはありますか、それともこれは本当にできないのでしょうか?

0 投票する
4 に答える
3231 参照

android - Android 用の libcap (Linux 機能ライブラリ) を取得するには?

Linux 機能 (libcap.so) ライブラリは Android で使用できますか? そうでない場合、どうすればコンパイルできますか?

sys/capabilities.hNDK に含まれているの機能関連 API を使用したいと考えています。しかし、のような関数を呼び出そうとするとcap_get_proc()、「未定義の参照」エラーが発生します。

0 投票する
2 に答える
4750 参照

linux - /usr/bin/passwd および CAP_CHOWN 機能

私は Linux の機能を試していましたが、passwdプログラムが Set-UID ルートにならずに機能するには、(他の機能に加えて) CAP_CHOWN機能が必要であることに気付きました。論理的には、なぜCAP_CHOWNが必要なのでしょうか?

ちなみに、この機能を削除すると、passwd で「トークン操作エラー」が発生します。

編集: SELinux なしで Ubuntu 11.04 を使用しています。passwdSet-UID ルートにならずに作業を開始しようとしています。