将来のファイルの権限を設定する方法は?

将来のファイルの権限を設定する方法は?

私はこれが宿題であることを自由に認めます。

あなたとあなたの友人が以前の学校でIT教師をホストしていると想像してください。出席者のリストは添付のテキストファイルにあります。ディレクトリdocumentsと管理するにはtasks権限が必要ですsolutions。次のようにアカウントを作成し、すべての出席者の権限を設定するスクリプトを作成します。

  • 各出席者には、そのディレクトリに作成されるファイルを読み取る権限があり、友達にはdocumentsそのディレクトリ内のファイルを読み取って変更する権限がありますが、何も追加または削除することはできません。
  • 各出席者はディレクトリに表示されるファイルを読み取る権限を持ちtasks、友達はディレクトリに対するすべての権限を持ちます。
  • 各出席者には、独自のソリューションをカタログに掲載する権利がありますsolutions/<ID of attendee>-<ID of task>
  • solutionsあなたの友人はディレクトリツリーに対するフルアクセス権を持っており、出席者は他の人の解決策を見ることができません。

chmodデフォルトのファイル権限(、、umask)およびACL(setfacl)の操作。

今私を混乱させることは:

まだ存在しませんが、今後作成されるファイルに対して細かい権限を設定する必要がありますか? ! ? !

私が理解している制限では:

  • umask新しく作成されたファイルのデフォルト権限を設定できますが、これはデフォルトの所有者 - グループ - その他の権限であるため、友達の権限、出席者の権限、同僚の参加者の権限を区別することはできません。
  • setfacl既に存在するファイルまたは私が作成したファイルに対してのみ権限を設定できますが、後で作成されるファイルには権限を設定できません。

それで、この課題をどうすべきかわかりません。誰かが私に正しい道を教えてもらえますか?

答え1

正しい方向に案内するいくつかのヒント:

  • 前方十字靭帯マニュアルページこのセクションでは、基本 ACL について説明します。

    ファイルオブジェクトのアクセスACLは、次のいずれかの方法でオブジェクトが作成されると初期化されます。作る()mkdir()マークノルド()mkfifo()または開いている()機能。デフォルトのACLがディレクトリに関連付けられている場合モデルファイルオブジェクトを生成する関数のパラメータとディレクトリのデフォルトACLは、新しいオブジェクトのACLを決定するために使用されます。

    1. 新しいオブジェクトは、インクルードディレクトリのデフォルトACLをアクセスACLに継承します。

    2. モードパラメータに指定された権限に含まれていない権限が含まれないように、ファイル権限ビットに対応するアクセスACLエントリを変更します。

  • ディレクトリの固定ビットを使用すると、ディレクトリに作成された新しいファイルの所有者/グループを変更できます。ディレクトリに作成されたファイルには、デフォルトグループの代わりに固定ディレクトリの所有者/グループがあります。詳細については、次の質問を参照してください。粘着性のあるビットはどのように機能しますか?

関連情報