ディレクトリのデフォルト権限の設定

ディレクトリのデフォルト権限の設定

誰かがこの質問を重複して表示する前に、いくつかの追加情報を知りたいことを強調したいと思います。

私は道を見つけたディレクトリに作成されたすべてのファイルのデフォルトファイル権限の設定

このプロセスをディレクトリに適用すると、そのmy_dirディレクトリに作成されるすべてのファイルとサブディレクトリにmy_dir正しい権限が付与されます。ただし、外部からファイルを作成して内部的にコピーまたはmy_dir移動すると、にmy_dir定義された権限はありませんmy_dir

そのため、ファイルが作成された場所に関係なく、そのディレクトリ内のすべてのファイルのディレクトリとその内容の権限を変更する方法があるかどうか疑問に思います。

最良のソリューションは、ユーザーが特別な作業を行う必要がないソリューションです。簡単なクリック、ドラッグ、コピーcp...しかし、mv左右には関係ありません。chmodだからこんな答えが出ます。これユーザーがファイルをコピーまたは移動しようとするたびに珍しい操作を実行する必要があるため、実際には必要ありません。

PS:私がこれを行う理由は、私と同じグループに属する同僚といくつかのフォルダを共有するためです。wrxフォルダ外で作成されたファイルであっても、グループ内の誰もが共有フォルダに含まれるすべてのファイルにアクセスできることを願っています。

答え1

ユーザーのファイル権限グループを使用します。管理者は新しいグループを作成し、/etc/groupsすべての Teams ユーザーをグループに追加するよう依頼しました。umask同じグループのメンバーにアクセスできるように、ユーザーシェル設定ファイルの定義を変更します。

答え2

cpmvコピー後の操作を実行するためのラッパースクリプトなどを作成しますchmod

答え3

ACLで問題が解決しない場合、代替ソリューションはAPIを使用することですinotify。これにより、プログラムは1つ以上のディレクトリにあるイベントを監視し、それに対処することができます。

起動時に root で始まるスクリプトに含まれる次の内容が役に立ちます。

TARGET_DIR='/path/to/directory'
inotifywait --monitor --recursive --quiet --event close_write,moved_to --format '%w/%f' "$TARGET_DIR" |
    while read FILE
    do
        chmod go=u,o-w "$FILE"
        # chown someone:somegroup "$FILE"
        logger -t inotify "Tickled $FILE"
    done

関連情報