Linux
 Computer >> コンピューター >  >> システム >> Linux

Setuidにより、ユーザーが昇格された特権でファイルを実行できるようにする方法

Setuidにより、ユーザーが昇格された特権でファイルを実行できるようにする方法

Linuxで実行可能ファイルを実行すると、通常、現在のユーザーとグループIDで実行されます。ただし、そのファイルを別のユーザー(rootなど)として実行する必要がある場合があります。ユーザーアカウントを切り替える代わりに、setuidを使用して、現在のユーザーではなくファイル所有者として実行可能ファイルを実行できます。ここでは、setuidがどのように機能し、ユーザーが昇格された特権で実行可能ファイル/バイナリを実行できるようにするかについて説明します。

setuidはどのように機能しますか?

Setuidは、実行時のユーザーIDの設定の略です。 。 rootユーザーによって作成された「identity」と呼ばれる実行可能ファイルがあるとします。実行すると、ユーザーID、グループID、およびユーザー特権で実行されます。 setuidビットが「identity」ファイルに設定されている場合、それを実行すると、rootユーザーとそのユーザー権限として実行されます。

例として、最初に「identity」ファイルの所有権を確認し、rootユーザーが所有していることを確認できます。許可文字列には、ユーザー、グループなどに設定された実行可能(x)ビットも表示されます。

Setuidにより、ユーザーが昇格された特権でファイルを実行できるようにする方法

ユーザー「john1」は「identity」ファイルを実行します。これは実行時にプロセスになります。プロセスリストに示されているように、プロセスは「john1」ユーザー名とユーザーIDで作成および実行されます。

Setuidにより、ユーザーが昇格された特権でファイルを実行できるようにする方法

次に、rootユーザーとして、「identity」ファイルのsetuidビットを設定します。

chmod u+s /usr/bin/identity

「u」は、setuidビット(+ s)をユーザーに対してのみ設定する必要があることを示します。

Setuidにより、ユーザーが昇格された特権でファイルを実行できるようにする方法

所有者の場合、アクセス許可文字列の実行可能部分で、「x」が「s」に置き換えられていることがわかります。実行可能ファイルに「s」が表示される場合は常に、setuidビットが実行可能ファイルに設定されていることを意味します。

chmodの数値バリアント コマンドは、以下に示すように使用することもできます。

chmod 4755 /usr/bin/identity

数値許可文字列に4を追加すると、setuidビットが含まれることを示します。

「john1」が「identity」ファイルを再度実行すると、次のようになります。実行中のプロセスのリストを見ると、プロセスが「john1」ではなく「root」ユーザーによって作成および実行されていることがわかります。

Setuidにより、ユーザーが昇格された特権でファイルを実行できるようにする方法

setuidビットの重要な使用

ほとんどの場合、rootユーザーとしてアプリケーションを実行するべきではないという専門家からの意見を聞くでしょう。ただし、特定のファイルをroot権限で実行する必要がある場合があります。たとえば、passwd Linuxシステムにデフォルトでインストールされているユーティリティには、setuidビットが設定されています。

理由は簡単です。ユーザーのパスワード情報は「/etc/passwd」ファイルと「/etc/ shadow」ファイルに保存され、「root」でのみ変更できます。 「john1」が自分のパスワードを変更しようとすると、前述の2つのファイルの情報を変更する権限が必要になります。 passwdにsetuidビットを設定する 「john1」が一時的にroot権限を持ち、ユーザーパスワードを変更し、2つのファイルの情報を更新できるようにします。

Setuidセキュリティリスク

注意しないと、攻撃者がsetuidバイナリを悪用してシステムを制御する可能性があります。通常、ユーザーはsetuidプログラムをインストールしないでください。特に、自分以外のユーザーにはsetuidをインストールしてください。最も重要なことは、ホームフォルダにrootユーザー用のsetuid対応のバイナリがないことです。これらは通常、トロイの木馬またはマルウェアです。

結論

Setuidは、実行可能ファイルにのみ設定できます。同様に、setgid ビットも設定できます。これにより、グループのすべてのメンバーが所有者権限で実行可能ファイルを実行できるようになります。

setuidに注意してください およびsetgid ビットはセキュリティに敏感であり、資格のあるシステム管理者のみが使用する必要があります。

次を読む:

  • スティッキービットを使用してLinuxの共有ディレクトリ上のファイルを管理する方法
  • Linuxターミナルでスペルチェックを行う方法
  • Linuxでファイルを検索するためのfind、locate、which、whereisコマンドの使用

  1. Windows 10 で JAR ファイルを実行する方法

    jar ファイルは J の略です ava AR chive ファイルであり、その中に Java プログラム (Java クラス ファイル、メタデータ、およびリソース) を保持します。パッケージ ファイル形式 (.zip ファイル形式に似ています) である jar ファイルは、移植性を向上させ、これらのファイルが占めるスペースの量を減らすために、他のいくつかのファイルをまとめてパックするためにも使用できます。これにより、jar ファイルは非常に汎用性が高く、ゲーム、アプリケーション、ブラウザ拡張機能などの保存に使用できます。 すべての jar ファイルが同じように作成されるわけではありません。

  2. OneDrive ファイルを他のユーザーと共有する方法

    Microsoft OneDrive は、Windows の既定のオンライン ストレージおよび同期サービスです。信じられないほど幅広い機能が搭載されているため、このアプリはほとんどすべての競合他社よりも優れていると言っても過言ではありません。 OneDrive を使用すると、ドキュメントをオンラインで保存したり、Web アプリケーションで Microsoft Office (Word、PowerPoint、Excel) にアクセスしたりできます。さらに、Microsoft 365 を購読しているかどうかに関係なく、パートナー、サプライヤー、クライアント、顧客など、組織外の人々と安全に共同作