粘着性のあるビットはどのように機能しますか?

粘着性のあるビットはどのように機能しますか?

スエイド

これ粘り強いビット実行可能プログラムに適用され、プログラムの実行が完了した後、システムはプログラムイメージをメモリに保持するように指示します。

しかし、私はそれがメモリに何を保存しているのかわかりません。このような場合はどうやって見ることができますか?

ベストアンサー1

これはおそらく人々がいつも台無しにする最大の苦情の一つです。 SUID/GUID ビットと固定ビットは全く異なる 2 つです。

もしそうならman chmod、SUIDと粘着性のある部分について読むことができます。これマニュアルページはここにあります。しかも。

背景

抜粋

これらの手紙リーダー/ライター影響を受けるユーザーのファイルモードビットの選択:読み取り(r)、書き込み(w)、実行(またはディレクトリ検索)(x)、ファイルがディレクトリ、またはすでに一部のユーザーに対する実行権限を持っている場合にのみ実行/検索( X)、実行時にユーザーまたはグループIDを設定する、削除制限フラグまたは スティッキービット(t)

SUID/GUID

上記のマニュアルページで説明しようとしているのは、ユーザーの8進数(rwxの最初のグループ)とグループ8進数(rwxの2番目のグループ)の両方で、rwxrwxrwxのxビットが占める位置が追加の状態になる可能性があることです。この場合、ファイルが実行されると(ただしシェルスクリプト以外のプログラムである場合)、ファイルの所有者またはグループの権限で実行されます。

したがって、ファイルがルート所有であり、SUID ビットがオンの場合、プログラムはルートとして実行されます。通常のユーザーとして実行しても同じです。 GUID ビットにも同じ内容が適用されます。

抜粋

SETUIDおよびSETGIDビット

ファイルのグループIDがユーザーの有効なグループIDまたはユーザーの補足グループIDのいずれかに一致しない場合、chmodはユーザーが適切な権限を持っていない限り、一般ファイルのset-group-IDビットをクリアします。その他の制限により、MODE または RFILE の set-user-ID および set-group-ID ビットが無視される可能性があります。この動作は、基本的なchmodシステムコールのポリシーと機能によって異なります。疑わしい場合は、基本的なシステム動作を確認してください。

chmod は、明示的に別段の指定がない限り、ディレクトリの set-user-ID および set-group-ID ビットを保持します。 u + sやgsなどのシンボルモードを使用してこれらのビットを設定または消去し、数値モードを使用してこれらのビットを設定できますが、消去することはできません。

SUID/GUIDの例

suid/guid なし- 少しだけrwxr-xr-x設定しました。

$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suidとユーザー実行可能ビットを有効にする(小文字s)- ビットRWSR-XRX設定しました。

$ chmod u+s b.pl 
$ ls -lt b.pl 
-rwsr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suidが有効になり、実行可能ビットが無効になります(大文字S)。- ビットrwSr-xr-x設定しました。

$ chmod u-x b.pl
$ ls -lt b.pl 
-rwSr-xr-x 1 root root 179 Jan  9 01:01 b.pl

GUIDとグループの実行可能ビットが有効になりました(小文字s)。- ビットrwxr-sr-x設定しました。

$ chmod g+s b.pl
$  ls -lt b.pl 
-rwxr-sr-x 1 root root 179 Jan  9 01:01 b.pl

GUIDの有効化と実行可能ビットの無効化(大文字S)- ビットrwxr-Sr-x設定しました。

$ chmod g-x b.pl
$  ls -lt b.pl 
-rwxr-Sr-x 1 root root 179 Jan  9 01:01 b.pl

粘り強いビット

一方、固定ビットは、例えばtディレクトリのように表示されます/tmp

$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp

このビットは実際に意味するバイなので、常に「制限された除去ビット」と呼ぶ必要があります。このモードビットが有効になると、自分が所有するファイルとディレクトリのみを削除できるディレクトリが作成されます。

抜粋

制限除去フラグまたは固定ビット

制限された除去フラグまたは固定ビットは、ファイル形式によって解釈が異なる単一ビットである。ディレクトリの場合、
権限のないユーザーがファイルまたはディレクトリを所有していない限り、ディレクトリからファイルを削除または名前変更することを防ぎます。これはディレクトリの制限された削除フラグと呼ばれ、通常/tmpなどのグローバルに書き込み可能なディレクトリにあります。一部の古いシステムの通常のファイルでは、このビットはプログラムのテキストイメージをスワップデバイスに保存し、実行時により速くロードされるようにします。これを固定ビットと呼びます。

おすすめ記事