ディレクトリとファイルの所有権と権限の継承

ディレクトリとファイルの所有権と権限の継承

test所有者が user:group で権限が 770 のディレクトリがあります。

私はその中のすべてのディレクトリとファイルがtest同じ仕様を持つことを望みます。

試してみましたが、chmod g+s,u+s test部分的に動作しました。そのフォルダ内のディレクトリは所有権と権限を継承しますが、権限は記録されず、所有者のみが記録されます。私も試してみましたが、chmod g+t test完全に失敗しました。

目的の結果をどのように取得できますか?

編集:管理者はACLをインストールできず、ファイルがCLIから生成されないため、umaskは機能しません。

答え1

(+ s setgid): 時には他のUNIXオペレーティングシステムとは異なる意味を持ちます。ただし、ユーザーとグループの継承は可能ですが、権限の継承はできません。

デフォルトでは、権限は各ユーザーの「umask」を使用して設定されます。

umaskが "0"の場合、デフォルトではrwxrwxrws(つまり、8進モード777またはバイナリ:111111111)権限を使用してファイルとディレクトリが作成されるため、読み取り、書き込み、および実行可能(またはディレクトリの場合): "crossable")所有者(最初のrwx三重項)、ファイルに関連付けられたグループ(2番目のrwx三重項)、およびすべての人/すべての項目(3番目の「rwx」三重項)のものです。

umask: これらのビットの一部は「マスク」することができます。

通常、ルートのumaskはより制限的です。たとえば、077(「077」の8進数がバイナリでは000111111であるため、すべてのグループやその他のビットを隠すことを意味します)、通常のユーザーは通常022(たとえば000010010)なので、「非表示」(削除)を意味します。 )このグループの「書き込み」ビットと「他のトリプル」。

つまり:

without umask the file or directory have those triplets:
rwx rwx rwx , ie:  111 111 111
If created by root, with a umask of : 077, this file would instead have:     
    111 111 111
XOR 000 111 111
  = 111 000 000, thus : rwx --- --- (ie, only the owner can read/write/execute it)
If created by a user, with a umask of : 022, it would instead have:
    111 111 111
XOR 000 010 010
  = 111 101 101, thus : rwx r-x r-x

関連情報