저는 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