Unixファイルの所有権について質問があります。
私はdrupalウェブサイトを持っていて、ユーザーがPHPを使ってファイルをアップロードできるようにするには、「www-data」が「files」フォルダを所有する必要があります。
しかし、今はsvnを使用しており、これを行うには、svnuserがすべてのフォルダとファイルを所有する必要があります。
これで、適切な権限を持つグループに両方のユーザーを追加する必要があるようです。これを行う方法がわかりません。正確に必要なステップが何であるかを教えてください。
ありがとう
答え1
この問題を管理する最も簡単な方法は次のとおりです。アクセス制御リスト。デフォルトのUNIX権限のように、1人のユーザーと1つのグループではなく、必要な数のユーザーとグループに対して権限を設定できます。
ACLはファイルシステムで有効にする必要があります。 ext [234]またはreiserfsを使用するには、acl
マウントオプションを渡す必要があります。また、ACLユーティリティがインストールされていることを確認してください(acl
DebianまたはUbuntuのパッケージ)。
両方のユーザーがファイルにアクセスできるようにするACLを設定し、ディレクトリに一致するデフォルトのACLを設定します(デフォルトのACLはディレクトリから生成されたファイルに継承されます)。
setfacl -m user:www-data:rwx -m user:svnuser:rwx -R /path/to/directory/tree
setfacl-d -m user:www-data:rwx -m user:svnuser:rwx -R /path/to/directory/tree
必要に応じて他の権限を設定できます。 ACL以外の権限(設定された権限を使用)でファイルを実行可能にしないと、chmod
実行可能ビットは無視されます。
提供されたコマンドはLinux用です。他の多くのUNIXバリアントもACLをサポートしていますが、使用可能な権限の正確なセットとそれを設定するユーティリティはまだ標準化されていません。
必要に応じてグループを使用してアクセスを制御できます。これでACLの利点は、umaskの問題が発生しないことです。グループを作成するだけで、すべてのファイルとディレクトリがグループに書き込み可能であることを確認する必要があります。すべてのプロセスは002または007のファイルのumaskを生成します。これは最終的に他の場所でより自由な権限につながる可能性があります。したがって、ACLはグループを作成する場合にも便利です。
setfacl -m group:mygroup:rwx -R /path/to/directory/tree
setfacl -d -m group:mygroup:rwx -R /path/to/directory/tree
このセキュリティモデルがあなたのユースケースに適しているという保証はありません。私は単に実装を提供しているだけです。