私は最近、3桁と4桁の数値ファイルのアクセス許可の違いは何だろうと思っていました。を実行して数値の権限を取得しstat --format "%a" $file_name
ます。0644と644の違いは何ですか?
私は最近、3桁と4桁の数値ファイルのアクセス許可の違いは何だろうと思っていました。を実行して数値の権限を取得しstat --format "%a" $file_name
ます。0644と644の違いは何ですか?
回答:
4桁の許可の最初の桁は、セットユーザーID (4)、セットグループID(2)、スティッキ(1)の合計です。3桁の許可は、最初の桁がゼロに設定された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番目は、同じ値です。