私はCentos 8 Linuxを使用しており、複数のユーザーが同じグループに属し、同じFS(xfs)にある複数のffフォルダ/サブフォルダとファイルにアクセスします。すべてのファイルとフォルダにumaskが0002に設定されたグループへの書き込み権限を付与することで、作成した新しいファイルに正しい権限を付与したいが、抽出したtarや他の圧縮ファイルがあり、抽出されたファイルは保持されます。権限内のファイルは元の状態で所有され、変更されないため、一部のファイルには所有者権限のみがあり、グループ権限はありません。グループへの書き込みを許可するために、ユーザーがchmodを実行することなく自動的に権限を設定する方法を見つけたいと思います。 iデフォルトフォルダにg + sを割り当てようとしましたが、新しいフォルダからのみ個々のファイルではなくグループ権限を継承できます。 ACLを有効にしようとしましたが、ファイルが親フォルダの権限を継承できませんでした。これが私のホームフォルダの外観です
drwxrwsr-x+ 4 owner group 4.0K Mar 6 10:26 test
そしてtgzファイルを解凍した後の内容
drwxrwsr-x+ 8 owner group 202 Mar 6 09:56 folder1
drwxrwsr-x+ 8 owner group 202 Mar 6 10:12 folder2
ただし、ファイルが含まれている最初のフォルダに到達すると、ファイル権限は所有者にのみ付与されます。
ll test/folder1
-rwx------. 1 owner group 195K Jun 6 2018 file1
-rwx------. 1 owner group 225K Aug 4 2018 file2
-rwx------. 1 owner group 211K Aug 20 2018 file3
-rwx------. 1 owner group 100K Sep 9 2018 file4
-rwx------. 1 owner group 200K Oct 24 2018 file5
-rwx------. 1 owner group 199K Nov 9 2018 file6
実行後も
setfacl -R -m d:o:rwx test
ファイルに変更する権限がありません。
圧縮アーカイブから作成または抽出されたすべてのファイルがホームフォルダの権限を継承するように強制する方法はありますか?
答え1
私はまだより良い解決策を探していますが、今ではtar出力をchmodコマンドにパイプするスクリプトを作成しました。
#!/bin/bash -
set -o pipefail
tar xvf "$@" | xargs -rd '\n' chmod 770 --
100人以上のユーザーに異なるコマンドを使用するように指示するのは難しいかもしれません。 tarのマニュアルページの情報によれば、ファイル権限を無視する必要があるオプションがあるようです。
--no-same-permissions
しかし、umask権限が抽出されたファイルに対する権限よりも厳しい場合にのみ機能するようです。これがバグなのかと思います。
答え2
使用できるstar
実装するtar
-chmod
抽出時にファイル権限を設定するオプションは次のとおりです。
star -x -o -f file.tar -find -chmod ug+rwX