3 桁と 4 桁のファイル権限の違いは何ですか?

3 桁と 4 桁のファイル権限の違いは何ですか?

最近、3 桁と 4 桁の数値ファイル権限の違いは何だろうと考えていました。数値権限は、 を実行して取得しますstat --format "%a" $file_name。0644 と 644 の違いは何ですか?

答え1

4桁の許可の最初の桁は、ユーザーIDを設定する (4)グループIDを設定する(2)そして粘着性(1)3桁の許可証は、最初の桁が0に設定された4桁の許可証と同じです。つまり、

  • 0644 は 644 とまったく同じです。
  • 1644は644に似ていますが、スティッキービットも設定されています
  • 4644 は 644 と似ていますが、設定されたユーザー ID ビットも設定されます。

4桁目の権限の使用例

ユーザー ID が設定されたファイルを実行すると、実行しているユーザーではなく、ファイルの所有者によって実行されます。したがって、たとえば、は/bin/mount一般に root によって所有され、権限は 4755 ですが、4 は、通常のユーザーが実行した場合でも、所有者 (root) の権限で実行されることを意味します。

ディレクトリにグループ ID を設定すると、ファイルを共有する場合に便利です。

スティッキー ビットは、 などのディレクトリで使用され/tmp、すべてのユーザーがファイルを作成できる一方で、所有者以外のユーザーが他のユーザーのファイルを削除できないようにします。したがって、 の権限は/tmp通常 1777 であり、1 はスティッキー ビットが設定されていることを示します。

ドキュメンテーション

からman chmod

数値モードは、1 から 4 の 8 進数 (0-7) で、4、2、1 のビットを加算して算出されます。省略された数字は先頭のゼロとみなされます。最初の数字は、ユーザー ID (4) とグループ ID (2) の設定、および削除制限またはスティッキー (1) 属性を選択します。2 番目の数字は、ファイルの所有者の権限 (読み取り (4)、書き込み (2)、および実行 (1)) を選択します。3 番目の数字は、同じ値でファイルのグループ内の他のユーザーの権限を選択します。4 番目の数字は、同じ値でファイルのグループに属さない他のユーザーの権限を選択します。

関連情報