ユーザーが755権限でファイルを生成できるようにディレクトリを設定する方法

ユーザーが755権限でファイルを生成できるようにディレクトリを設定する方法

Linuxでディレクトリ(共有)を作成し、すべてのユーザーがその共有ディレクトリにファイルを作成できるようにしたいと思います。さらに、ファイルを作成したユーザーのみが自分のファイルを削除/変更できる必要があり、他のすべてのユーザーは/Sharedディレクトリに制限された読み取り実行権限(705または755)を持つ必要があります。

たとえば、ユーザーTOMが共有ディレクトリに「sample」というファイルを作成する場合、ユーザーTOMは/ sharedにある「sample」ファイルの所有者である必要があります。ユーザーJackとユーザーMattは、「sample」ファイルに対する読み取りおよび実行権限に制限する必要があります。これは、/Sharedディレクトリの「sample」ファイルに対して755権限を設定する必要があることを意味します。共有ディレクトリ内のユーザーTOMによって生成されたファイルを他のユーザーが編集または削除するのを防ぎます。どうやってこれを達成できますか?

ありがとう、CG

ベストアンサー1

一般ファイルを自動的にインポートするように求められたコメントから実装する権限、それは難しい部分です。

open(2)/シリーズのシステムコールを使用して書き込み用にファイルを開くと、creat(2)プログラムは〜しなければならないmodeファイル権限設定のデフォルト値として使用されるパラメータを提供します。一般ファイルを生成するほとんどのプログラムでは、このパラメーターは通常モード0666として指定されます。意図的に実行可能ファイルを生成するプログラムのみがモード0777をデフォルト値として使用します。

オペレーティングシステムはこのデフォルトモード値とユーザーのネットマスク設定を取得し、バイナリAND操作を実行します。モードビットは次にのみ存在します。両方デフォルトモード値そしてネットマスク値が適用されます。結果はchmod結果ファイルの値として直接使用されます。するメカニズムはありません。次へ追加生成されるファイルを呼び出すプログラムによって要求されていない権限は、umask権限をさらに制限できます。

ディレクトリを作成するために、mkdir(2)まったく同じ権限メカニズムで異なるシステムコールが使用されます。ただし、デフォルトでは、誰もが新しいディレクトリを作成するために呼び出すときにデフォルトモード値0777を使用します。

POSIX ACLは同様のメカニズムを使用して実行権限を割り当てるかどうかを決定するため、デフォルトではすべてのファイルに実行権限を付与するのに役立ちません。

私が知る限り、Unixスタイルのファイルシステムで欲しいものを達成する唯一の方法は次のとおりです。ユーザーが使用するすべてのプログラムを再構築します。ファイルを生成するときは、デフォルトモード0777を使用してください。ただし、これらのプログラムは実行権限を持つファイルを生成します。どこでも、特定のディレクトリだけにあるわけではありません。

しかし、私が「Unixスタイルのファイルシステム」と言ったことを覚えておいてください。 UNIX以外のファイルシステムは、ファイル権限を完全に異なる方法で処理します。特別なディレクトリにNTFSファイルシステムを使用できる場合は、デフォルトのACLにファイルにデフォルトで実行権限を割り当てさせることができますか?

おすすめ記事