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