web-dev-qa-db-ja.com

ユーザーがファイル/フォルダーを作成および削除できるようにするにはどうすればよいですか?

グループ名「app-data」とフォルダー/ db-data/archived-data /を作成しました

App-dataのメンバーに/ db-data /フォルダーに対するすべての権限を持たせたいが、同じグループのユーザーには/ db-data/archived-data /フォルダーに対する作成および削除アクセスのみを許可する(ユーザーは変更できないその中のファイルまたはディレクトリ。ただし、必要なファイルまたはフォルダを作成または削除できる必要があります。

どうすればできますか。これはACLを介して可能であると思いますが、これをどのように実現できるかをお気軽にお知らせください。どんな方法を使っても大丈夫ですが、この構成が必要です。

助けてください。

3
Hrish

これは間違いなく可能です。まず、/db-dataのグループをapp-dataに変更します。

Sudo chgrp -R app-data /db-data

次に、許可をセットアップします。

Sudo chmod -R g+rwx /db-data
Sudo chmod -R g-w /db-data/archived-data/*
Sudo find /db-data/archived-data -type d -exec 'chmod' 'g+rwx' '{}' ';'
  • Sudo chmod -R g+rwx /db-dataapp-dataおよびその中のすべてに対する/db-data完全な許可を与えます
  • Sudo chmod -R g-w /db-data/archived-data/*は、app-data内のすべてに対する/db-data/archived-dataの書き込み許可を削除します
  • 最後に、Sudo find /db-data/archived-data -type d -exec 'chmod' 'g+rwx' '{}' ';'app-dataのすべてのディレクトリ/db-data/archived-dataの書き込み権限を復元します(ただし、ではないこれらのディレクトリ内のファイル)。 app-data/db-data/archived-data内のファイルまたはディレクトリを作成および削除させるために必要です。

これで、app-dataの誰でも/db-data/archived-data(1レベルよりも深いサブディレクトリを含む、つまりapp-dataのファイルまたはディレクトリの読み取り、実行、作成、削除が可能になります。 /db-data/archived-data/a/b/)のファイルを削除します。 app-dataに読み取りおよび/または実行の許可を与えたくない場合は、g-wSudo chmod -R g-w /db-data/archived-data/*を読み取り許可なしのg-rwに変更し、g-wx実行権限がない場合、またはg-rwx権限がない場合(findコマンドの実行後にこれを行う場合は、再実行する必要があります)。

最後に、ユーザーがいる場合app-dataファイルまたはディレクトリを作成する場合、作成したファイル/ディレクトリを変更できる (ただし、既存のファイルは変更できません)。

2