rwxrwxr-x
権限が設定されたディレクトリがあります-s-
。ユーザーAがこのフォルダにファイルを作成すると、そのファイルは権限を取得し、rw-rw-r--
ユーザーBは権限を取得しますrw-r--r--
。ファイルが最初に作成されたときに正確にどのように権限が設定されるのか混乱しています...
私がしなければならないことにもっと集中するために、ディレクトリにはユーザーAとBを含むグループGがあり、両方が同じディレクトリ内のすべてのファイルで作業できるようにしたいと思います。したがって、両方ともファイルを作成することrw-rw-r--
ができます。したがって、干渉なしでこれらのファイルを処理できます(削除して再作成または編集するだけです)。
答え1
新しいファイルの権限は、(1) 呼び出しで設定された権限とopen()
(2) 生成プロセスが変更され、設定されたumask
ビットがumask
クリアされるように設定されます。つまり、許可ビットは両方が許可されている場合にのみ設定され、ビットを反転するだけですumask
。
あなたの場合、ユーザーは異なるumaskを持つことができます。つまり、Aはumask 0002
(他のユーザーの書き込みビットのみクリア)を持っているように見えますが、Bはumask 0022
(グループと他のユーザーの両方の書き込みビットをクリア)を持っているようです。 umaskはシェルの起動ファイルにあるか、pam_umask
。
ディレクトリにACL、特にデフォルトのACLが設定されている場合、状況はわずかに異なります。この場合、umaskは無視され、デフォルトのACLはファイルのACLにコピーされますが、システムコールに設定された許可ビットのみが保存されます。
この質問に対する答えを探しているかもしれません。