Linux における SUID、SGID、SBIT の素晴らしい使い方の詳細な説明

Linux における SUID、SGID、SBIT の素晴らしい使い方の詳細な説明

序文

Linux のファイル権限管理はとにかく素晴らしいです。SUID、SGID、SBIT の機能を確認し、まとめてみましょう。

実際、SUID と SGID の機能は sudo の機能と似ています。ユーザー A が、本来ユーザー B が所有する実行ファイルを実行したい場合、B のファイルに suid ビットが設定されていれば、A はユーザー B として実行します。

SUID は Set UID の略で、ユーザー ID を設定するという意味です。少しぎこちない感じがしますが、SUID が最も簡潔だと思います。これは、ファイル所有者の権限の実行ビットに表示されます。この権限を持つファイルが実行されると、呼び出し元は一時的にファイル所有者の権限を取得します。たとえば、次のコマンドを使用します。

ls -l /usr/bin/passwd

次のような結果が得られます。

-rwsr-xr-x 1 ルート ルート 42824 2012年9月13日 /usr/bin/passwd

ご覧のとおり、ファイル所有者の実行ビットは x ではなく s なので、passwd プログラムには SUID 権限があります。ユーザー パスワードを変更するときは passwd コマンドを使用すること、また Linux ではユーザー パスワードが /etc/shadow ファイルに保存されることがわかっています。まず、/etc/shadow ファイルの権限を確認します。

ls -l /etc/shadow

返される結果は次のとおりです。

-rw-r----- 1 ルートシャドウ 1138 12月13日 20:00 /etc/shadow

上記の結果から、root のみがシャドウ ファイルにデータを書き込むことができ、他のユーザーにはそれを表示する権限すらないことを知ることができます。では、通常、パスワードはどのように変更するのでしょうか?はい、SUID に関連しています。 passwd コマンドを使用すると、passwd の所有者、つまり root の権限が取得され、shadow ファイルに書き込むことができます。

SUID を使用する場合は、次の点を満たす必要があります。

1.SUIDはバイナリファイルにのみ有効です

2. 呼び出し元はファイルに対する実行権限を持っている

3. 実行プロセス中、呼び出し側は一時的にファイルの所有者権限を取得します。

4. この権限はプログラムの実行中のみ有効です

「Bird BrotherのLinuxプライベートレシピ」には、この意味を特に表現した写真があります。


SGID は Set GID の略です。ファイルが属するグループ権限の実行ビットに表示されます。通常のバイナリ ファイルとディレクトリに有効です。通常のファイルに対して動作する場合、SUID と同様に、ファイルを実行するときに、ユーザーはファイルが属するグループの権限を取得します。 SGID がディレクトリに適用されると、非常に重要になります。ユーザーがディレクトリに対して書き込み権限と実行権限を持っている場合、そのユーザーはそのディレクトリ内にファイルを作成できます。ディレクトリが SGID で変更された場合、そのディレクトリ内にユーザーが作成したファイルは、そのディレクトリが属するグループに属します。

SBIT は Sticky Bit の略です。他のユーザー権限の実行ビットに表示され、ディレクトリを変更するためにのみ使用できます。ディレクトリに SBIT 権限がある場合、このディレクトリにファイルを作成できるユーザーは、このディレクトリとルートでそのユーザーが作成したファイルのみを削除できますが、他のユーザーは削除できません。例えば:

ls -ld /tmp

以下の結果が得られます。

drwxrwxrwt 12 ルート ルート 12288 12月17日 16:33 /tmp

最後の桁が t であることがわかります。これは、/tmp ファイルがこのタイプのファイルであることを意味します。

では、上記の 3 つの権限をどのように設定すればよいのでしょうか?まず、権限を表す数字を使用して、いくつかの予備知識を紹介しましょう。

4はSUIDを意味する
SGID 2 個
SBIT 1位

2 つまたは 3 つの権限が同時に存在する場合、書き込み権限の値を加算することで必要な結果が得られます。 SUIDとSGIDが同時に存在する場合は6になります。変更の例を次に示します。

chmod 4777 テスト

テスト ファイルに SUID 権限を付与する方法は、すでにおわかりかもしれません。通常のファイル権限の前に、これらの特別な権限値を追加するだけです。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linux の特別な権限 SUID、SGID、SBIT の詳細な説明
  • Linux 基本チュートリアル: 特別な権限 SUID、SGID、SBIT

<<:  スライダー間隔コンポーネントのネイティブ js 実装

>>:  Windows 10 無料インストール版の MySQL インストールと設定のチュートリアル

推薦する

MySQLのさまざまなロックの概念的理解

楽観的ロック楽観的ロックは、主にデータ バージョン記録メカニズムに基づいて実装され、通常はデータベー...

vscode で Prettier Code プラグインを使用する詳細なチュートリアル

なぜprettierを使うのですか?大企業では、フロントエンド開発コードに独自のコード標準がある場合...

TSオブジェクトのスプレッド演算子とレスト演算子の詳細な説明

目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...

CSSアニメーションを途中で止めて姿勢を維持する方法

序文かつて、難しい問題に遭遇しました。タワークレーンからスイングハウスを落下させる必要がありましたが...

ウェブページにプレーヤーを埋め込む埋め込み要素の自動開始が false 無効

最近、仕事でサウンド ファイルを再生するために Web ページにプレーヤーを埋め込む必要に迫られまし...

MySQLはSQL文を使用してテーブル名を変更します

MySQL では、SQL ステートメント rename table を使用してテーブル名を変更できま...

MySQLでインデックスエラーが発生する状況について簡単に説明します

以下に、トレーニング機関からのヒントと私自身の要約をいくつか示します。以下のインデックスの内容を説明...

システム エラー 1067 のため、MySQL 5.6 解凍バージョン サービスを開始できません

今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................

MySQL 上級学習インデックスの長所と短所、使用ルール

1. インデックスの利点と欠点利点: 高速検索、高速グループ化および並べ替えデメリット: ストレージ...

MySQL 接続失敗の一般的な障害と原因

==================================================...

Vueカスタム指示により、ポップアップウィンドウのドラッグ4辺ストレッチと対角ストレッチ効果を実現

導入同社の最近の Vue フロントエンド プロジェクトの要件: ポップアップ ウィンドウのドラッグ、...

MySQL 8.0 エラー サーバーがクライアントに不明な認証方法を要求しました 解決策

最新バージョンのMySQL 8.0.11をインストールした後、ユーザーを作成して認証します。認証され...

MySQL で 1000 万件のレコードをすばやくクエリする方法

目次通常のページングクエリ最適化する方法大きなオフセット使用ID制限大量データ問題の最適化通常のペー...

Mysqlがデータベースに接続するときのホストとユーザーのマッチングルールについての簡単な説明

--データベースに接続するとき、ホストとユーザーのマッチングルール公式ドキュメント: https:/...

JTAを実装するためにAtomikosと組み合わせたTomcatについて

最近、プロジェクトは環境を切り替え、WebLogic を Tomcat に置き換えました。途中で発生...