Centos

如何讓從存檔中提取的文件繼承父文件夾的權限

  • August 20, 2020

我正在使用 Centos 8 Linux,其中多個使用者屬於同一組,訪問數字 ff 文件夾/子文件夾和同一 FS (xfs) 中的文件。我希望所有文件和文件夾都具有組設置 umask 的寫入權限為 0002 允許從使用者創建的新文件具有正確的權限,但是我有使用者提取的 tar 和其他壓縮文件,提取的文件保持他們在原始文件中的權限並且沒有改變導致某些文件僅具有所有者而不是組的權限我試圖找到一種自動設置權限的方法,而無需使用者執行 chmod 以允許為組寫入我嘗試分配 g+ s 在主文件夾上,但我只能讓新文件夾繼承組權限而不是單個文件。我嘗試啟用 ACL,但我再次沒有 t 獲取文件以繼承父文件夾權限。這是我的主文件夾的外觀

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

文件沒有改變他們的權限

有沒有辦法強制從壓縮存檔中創建或提取的所有文件都繼承主文件夾的權限?

我仍在尋找更好的解決方案,但現在我創建了一個腳本,將 tar 輸出通過管道傳輸到 chmod 命令

#!/bin/bash -
set -o pipefail
tar xvf "$@" | xargs -rd '\n' chmod 770 --

我不太喜歡它,因為指示 100 多個使用者使用不同的命令會很棘手,但如果找不到更好的解決方案,我會保留它。僅用於手冊頁的資訊 tar 似乎有一個選項應該忽略文件權限

--no-same-permissions

但似乎只有當 umask 權限比提取文件上的權限更嚴格時才有效,想知道這是否是一個錯誤

引用自:https://unix.stackexchange.com/questions/571639