新しく作成されたファイルに対する Linux ディレクトリ権限の継承

新しく作成されたファイルに対する Linux ディレクトリ権限の継承

次のフォルダ

 drwxr-xr-x   7 root root 45056 Nov 25 12:39 data

サブディレクトリとファイルを含む合計755個。

しかし、これらのディレクトリ内に新しいファイルを作成すると、権限が取得されます

-rw-r--r-- 1 root root    0 Nov 28  2013 new

これらのディレクトリに新しいファイルを作成するには、手動で行わずに 755 を使用します。chmod g+s を試しましたが、何も起こりませんでした。

任意のヒント

答え1

ビット権限を設定する唯一の方法は、umask を使用することです。たとえば、権限 666 (8 進数) でファイルが作成されると、umask によってどのビットが 0 に反転されるかが決まります。

さらに詳しく説明すると、rwx rwx rwx はそれぞれ User Group World を表します。各ビットが 1 (111 111 111) に設定されている場合、これは 0777 (8 進数) になります。0666 は 110:110:110 または rw_rw_rw です。意味が通じると思います。

デフォルトでは、umask は 022 - (8 進数 022) になります。これは、どのビットを保持するか (0)、どのビットを保持しないか (1) を示します (この方法では、少し直感的ではありません)。

666 個の作成されたファイルの場合: 6 & ~0 = 6 6 & ~2 = 4 6 & ~2 = 4

したがって、作成されたファイルの権限は 644 (rw-r--r--) になります。

umask の効果は、ファイル作成呼び出しに渡されるビットをマスクすることであることに注意してください。呼び出しに 666 が使用される場合、手動で「chmod a+x file」を実行せずに 755 にする方法はありません。

また、グループ suid を設定する g+s の効果は、ビット権限ではなく、所有グループを設定することです。Windows はこの点 (ACL) に関してはるかに細かい粒度になっていますが、Linux ファイル システムに ACL 権限を追加するファイル システム拡張機能があります。

関連情報