Linux機能の操作

前書き

Linux機能はLinuxカーネルの特別な属性であり、プロセスおよびバイナリ実行可能ファイルに、通常、実効ユーザーIDが0のプロセス(ルートユーザーであり、ルートユーザーのみがUID 0を持つ)に予約されている特定の特権を付与します。

この記事では、使用可能な機能のいくつか、その使用方法、およびそれらを設定および削除する方法について説明します。実行可能ファイルに機能を設定すると、システムのセキュリティが危険にさらされる可能性があることに注意してください。そのため、本番環境に機能を実装する前に、非本番システムでのテストを検討する必要があります。

前提条件

  • rootアクセス権を持っているLinuxシステム(rootユーザーまたはsudoアクセス権を持つユーザーを介して)。

説明

基本的に、機能の目標は、「root」の権限を特定の特権に分割することです。そのため、1つ以上の機能を持つプロセスまたはバイナリが悪用された場合、rootとして実行されている同じプロセスと比較すると、潜在的な損傷が制限されます。

プロセスおよび実行可能ファイルに機能を設定できます。ファイルの実行から生じるプロセスは、そのファイルの機能を獲得できます。

Linuxに実装されている機能は多数あり、その多くは最初のリリースから追​​加されています。それらのいくつかは次のとおりです。

  • CAP_CHOWN:ファイルのユーザーIDとグループIDを変更する
  • CAP_DAC_OVERRIDE:DAC(随意アクセス制御)をオーバーライドします。たとえば、vtoは読み取り/書き込み/実行権限チェックをバイパスします。
  • CAP_KILL:プロセスにシグナルを送信するための許可チェックをバイパスします。
  • CAP_SYS_NICE:プロセスの素晴らしさを上げる(素晴らしさの説明はここにあります
  • CAP_SYS_TIME:システムとリアルタイムのハードウェアクロックを設定する

完全なリストについては、を実行してくださいman 7 capabilities

機能はセットで割り当てられます。つまり、スレッドには「許可」、「継承」、「有効」、「環境」、ファイルには「許可」、「継承」、「効果」が割り当てられます。これらのセットはさまざまな複雑な動作を定義しているため、完全な説明はこの記事の範囲を超えています。

たとえば、ファイルに機能を設定する場合、ほとんどの場合、「許可」および「有効」を使用しますCAP_DAC_OVERRIDE+ep+ep前述のセットを示すに注意してください。

ファイル機能の操作

必要なパッケージ

2つの主要なツールがgetcapあり、setcapこれらはそれぞれこれらの属性を表示および設定できます。

  • DebianとUbuntuでは、これらのツールはlibcap2-binパッケージで提供され、次のようにインストールできます。apt install libcap2-bin
  • CentOSおよびFedoraでは、libcapパッケージが必要です。yum install libcap
  • Arch Linuxでは、これらも以下によって提供さlibcapれます。pacman -S libcap

読書能力

ファイルに機能セットがあるかどうかを確認するには、単にを���行しますgetcap /full/path/to/binary。次に例を示します。

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

システムにすでに設定されている機能を確認する場合は、次のコマンドを使用してファイルシステム全体を再帰的に検索できます。

getcap -r /

仮想ファイルシステム(など/proc)はこれらの操作をサポートしていないため、上記のコマンドは何千ものエラーを生成するため、より明確な出力を得るには、以下を使用します。

getcap -r / 2>/dev/null 

機能の割り当てと削除

ファイルに特定の機能を設定するには、を使用しますsetcap "capability_string" /path/to/file

ファイルからすべての機能を削除するには、を使用しますsetcap -r /path/to/file

デモのために、現在のディレクトリに空のファイルを作成し、機能を付与して削除します。以下から始めます。

root@demo:~# touch testfile
root@demo:~# getcap testfile

2番目のコマンドは出力を生成しません。つまり、このファイルには機能がありません。

次に、ファイルの機能を設定します。

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

例として「CAP_CHOWN + ep」を使用しましたが、他の方法でもこの方法で割り当てることができます。

次に、からすべての機能を削除しますtestfile

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

繰り返しになりますが、「CAP_CHOWN + ep」が削除されたため、出力はありません。

結論

機能には多くの潜在的な用途があり、システムのセキュリティを強化するのに役立ちます。実行可能ファイルでSUIDビットを使用する場合は、必要な特定の機能に置き換えることを検討してください。



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、