特定のフォルダに保存されているファイルの所有者を変更する

特定のフォルダに保存されているファイルの所有者を変更する

私は各ファミリーメンバーのディレクトリを含むNASを持っています。

私のユーザー名はすべてのメンバーグループのメンバーです。したがって、すべてのユーザーのフォルダにアクセスできます。

ユーザーディレクトリにファイルを配置するときは、そのファイルが親ディレクトリから所有権を取得したいと思います。または、特定の権限を取得します。

私の妻のディレクトリは、所有権がzoe:zoeで、権限がrwxrwx---である「zoe_folder」です。

touch file.txt妻のディレクトリ(またはサブディレクトリ)でrootとしてコマンドを実行した場合、file.txtの所有権はroot:rootであり、特権はrw-r--r--です。 zoe:zoeの所有権(または回避策としてrw-rw-rw-権限)が必要です。

もちろん、どのコマンドも実行する必要はありませんchmodchownNAS、クライアントPCはWindowsです。コンソールを使用してNASにログインできず、毎回権限を変更することはできません。

どんなアイデアがありますか?

答え1

私の考えであなたが探しているものは次のとおりです。

  1. 使う設定そのディレクトリ内のすべての新しいファイルが同じになるように、各ユーザーのディレクトリにグループディレクトリとして;

  2. umask0022のように見えるようにシステムを0002に設定します。umask 削除既存の権限は、デフォルトの権限である0777(ディレクトリ)および0666(ファイル)とは異なります。新しい設定では、ファイルのデフォルト権限が0644から0664に変更され、ディレクトリのデフォルト権限が0755から0775に変わります。あなたが提供した詳細について私が理解したように、あなたのシステムで動作します。

一つ入れる設定すべてのサブディレクトリでfind次のコマンドを使用します。しかし、 ホームディレクトリがユーザーディレクトリの上にあることを確認してください。ls無効な起動ディレクトリを使用すると、実行されたすべての操作を元に戻すのが少し難しくなる可能性があるため、簡単に一覧表示します。:

find ./ -type d -mindepth 1 -maxdepth 1 -exec chmod --preserve-root g+s '{}' \;

指定されたオプションは次のことを行います。

-type dファイルタイプ「ディレクトリ」のすべての内容を返します。

-mindepth 1権限が変更されないように、開始ディレクトリのリストを防止します。

-maxdepth 1独自のサブディレクトリにドリルダウンせずに、最初のレベルのサブディレクトリを一覧表示します。

-execテストに合格したプロジェクトごとに、次のコマンドを実行します。これは「{}」の略です。

--preserve-root権限の変更が誤ってルートディレクトリ(およびファイルシステム全体)に適用されるのを防ぐchmodの保護。

何が影響を受けるかわからない場合は、次の引数なしでfindコマンドを実行してください。-exec

find ./ -type d -mindepth 1 -maxdepth 1、これは引数で使用するコマンドに渡されるすべてのファイルのリストを提供します-exec

冗長性

少し検索の最後にこの質問を見つけました。 可能すでに(部分的に)ここに答えています。

ディレクトリ内のすべてのフォルダ/ファイルに対してデフォルトのファイル権限を設定するには?

許可された回答は、設定方法に関する段階的なチュートリアルを表します。基本権限ディレクトリ用https://www.linuxquestions.org/questions/linux-desktop-74/applying-default-permissions-for-newly-created-files-within-a-specific-folder-605129/

このような場合があることを確認してください。

関連情報