FTP ディレクトリに対する権限: ディレクトリ所有者の継承

FTP ディレクトリに対する権限: ディレクトリ所有者の継承

ユーザー(userA /、userB /など)用に複数のフォルダを作成しており、誰でもすべてのディレクトリでファイル/フォルダを作成/読み取りできます(userCはuserA /からfileXを作成できます)。ただし、そのフォルダ内のファイルは、そのディレクトリの所有者のみが変更または削除できます。 (userC は userC/ にあるファイルのみ変更/削除できます。)

ディレクトリ権限を7777に変更しようとしましたが、SUIDはそのディレクトリに対して機能しません。

アップロードされたファイルがディレクトリ所有者を継承する方法は?

編集する:UserZはdirZ /ディレクトリを所有しています。 UserZはdirZ /内のすべてのコンテンツを作成(アップロード)、変更、削除、および読み取ることができます。
同様に、UserYはdirY /ディレクトリを所有しています。ユーザーYはdirY /のすべての項目を作成、変更、削除、および読み取ることができます。

ユーザーYはdirZ /にアクセスできます。 UserYはdirZ /内で何でも作成または読み取ることができます。ユーザーYできないdirZ/の内容を編集または削除してください。

同様に、UserZはdirY /にアクセスできます。 UserZはdirY /内で何でも作成または読み取ることができます。ユーザーZできないdirY /の内容を編集または削除してください。

ベストアンサー1

ほとんどのUNIXバリアントでは、ユーザーが他のユーザーに属するファイルを生成することはできません。そんな理由があります。

あなたがそれを必要とするのは奇妙です。 userCが/内でファイルを作成および削除できるようにするには、userAuserCにそのディレクトリへの書き込み権限を付与します。設定に応じて最も簡単な方法は、これらのすべてのユーザーをパブリックグループに配置し、そのグループのすべてのmygroupユーザーディレクトリを書き込み可能にすることです。

chgrp mygroup userA userB userC
chmod g+w userA userB userC

使用ACL(アクセス制御リスト)より柔軟性が必要な場合(たとえば、複数のグループがこれらのディレクトリにアクセスできるようにする)、ディレクトリ内のすべての新しいファイルがグループからアクセスできるようにするシステムでACLを有効にするのに役立つ必要がある場合。

ユーザーが自分のディレクトリの外にあるディレクトリのファイルを変更できるようにするには、ファイルをグループ書き込み可能に設定するか、そのディレクトリにデフォルトのACLを設定します。

setfacl -d -m group:mygroup:rwx userA userB userC

ファイル所有者を変更する必要がある場合(同じユーザーセットがすべてのファイルにアクセスできるため、これが重要な理由は何ですか?)、ファイルをアップロードするときにrootとして実行されるアクションを使用してこれを行うことができます。 Linuxでinotifyベースのツールが利用可能です本当に必要な場合は、アップロードを実行するツールを変更することをお勧めします(一方、inotifyベースのソリューションを使用すると、ファイルが非常に短い時間内に誤った所有権を持つことになります)。

おすすめ記事