4桁のchmod引数の最初の数字(「chmod 4555」など)は何ですか?


20

プログラムをインストールするときに、実行することをお勧めしますchmod 4555。さて、3つの数字を使用するだけで値はわかります。例えば

chmod 555 test-file

あげる

-r-xr-xr-x

書き込み用に4、読み取り用に2、実行用に1。しかし、私がこれを行うと:

chmod 4555 test-file

それは私に与えます

-r-sr-xr-x

だから、にx変更しましたs。どう言う意味ですか?


1
ここでも説明されています:askubuntu.com/a/550947/72216(「s-フラグについて」)
ジェイコブヴリム

@JacobVlijmはまた、複数の他の「特別な」ビットの深さで、説明
トーマス区

回答:


29

経由で作業できる実際には4つの属性セットがありますchmod

SpecialUser/OwnerGroup、及びOthersその第一の数を設定することができる特別なビットであると共に、四数chmodsで作業そのため、です。

chmod 4555 以下と同等です。

  • Set UID bit-実行しているユーザーに関係なく、ファイルを所有者として実行します
  • ユーザー/所有者: Read, Execute
  • グループ: Read, Execute
  • その他: Read, Execute

sアクセス権のためのあなたの「人間が読める」の文字列では、ことを示しているSetUIDビットが(後述)が設定されています。


事実上、chmod次のように4桁の許可引数を特定の記述子に分解4し、最初のセクションのa 5、次のセクションのaなどを決定するための計算を行います。

覚えておいて####あるSpecial User/Owner Groupと、Othersその順序で。

以下のためのSpecial属性(4-番号の最初の番号chmodの引数):

  • Set UID-ファイルを実行しているユーザーに関係なく、ファイルを所有者として実行します(セクションのs人間が読み取れるアクセス許可文字列のように表示されUserます)= +4(--sUser/Owner
  • Set GID-ファイルを実行しているユーザー/グループに関係なく、ファイルをグループとして実行します(セクションのs人間が読める権限文字列のように表示されGroupます)= +2(--sGroup
  • Sticky Bit-ディレクトリのみに有効-設定されている場合、ディレクトリの所有者ユーザーのみがディレクトリrootを削除でき、ファイル所有者のみ、またはその中のファイルrootを削除できます。(セクションのt人間が読み取れる許可文字列のように表示Others)= +1(--tOthers

以下のためにUser/OwnerGroupおよびOthers属性(4-番号の最後の3つの数字chmodの引数):

  • Read= +4(r--
  • Write= +2(-w-
  • Execute(ファイルの場合)、または 'Enter / To List Items'(ディレクトリの場合)= +1(--x

7

SETUIDビットと呼ばれます。chmod 4555 test-file(あなたの場合)によって設定されている場合test-fileは、ユーザーがファイルの所有者であるかのように、ユーザーが実行できます。

ときにSETUIDビットが実効ユーザーID(設定されているEUID(通常の権限により、例えばそれ以外の場合は、ファイルを実行する権限を持たないユーザーのを)0744)、ファイルの所有者のEUIDを取り、ファイルを実行することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.