
誰かがこの質問を重複して表示する前に、いくつかの追加情報を知りたいことを強調したいと思います。
私は道を見つけたディレクトリに作成されたすべてのファイルのデフォルトファイル権限の設定
このプロセスをディレクトリに適用すると、そのmy_dir
ディレクトリに作成されるすべてのファイルとサブディレクトリにmy_dir
正しい権限が付与されます。ただし、外部からファイルを作成して内部的にコピーまたはmy_dir
移動すると、にmy_dir
定義された権限はありませんmy_dir
。
そのため、ファイルが作成された場所に関係なく、そのディレクトリ内のすべてのファイルのディレクトリとその内容の権限を変更する方法があるかどうか疑問に思います。
最良のソリューションは、ユーザーが特別な作業を行う必要がないソリューションです。簡単なクリック、ドラッグ、コピーcp
...しかし、mv
左右には関係ありません。chmod
だからこんな答えが出ます。これユーザーがファイルをコピーまたは移動しようとするたびに珍しい操作を実行する必要があるため、実際には必要ありません。
PS:私がこれを行う理由は、私と同じグループに属する同僚といくつかのフォルダを共有するためです。wrx
フォルダ外で作成されたファイルであっても、グループ内の誰もが共有フォルダに含まれるすべてのファイルにアクセスできることを願っています。
答え1
ユーザーのファイル権限グループを使用します。管理者は新しいグループを作成し、/etc/groups
すべての Teams ユーザーをグループに追加するよう依頼しました。umask
同じグループのメンバーにアクセスできるように、ユーザーシェル設定ファイルの定義を変更します。
答え2
cp
mv
コピー後の操作を実行するためのラッパースクリプトなどを作成します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