![아카이브에서 추출한 파일이 상위 폴더의 권한을 상속받도록 하는 방법](https://rvso.com/image/168786/%EC%95%84%EC%B9%B4%EC%9D%B4%EB%B8%8C%EC%97%90%EC%84%9C%20%EC%B6%94%EC%B6%9C%ED%95%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%83%81%EC%9C%84%20%ED%8F%B4%EB%8D%94%EC%9D%98%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EC%83%81%EC%86%8D%EB%B0%9B%EB%8F%84%EB%A1%9D%20%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
저는 동일한 그룹에 속한 여러 사용자가 동일한 FS(xfs)에 있는 여러 폴더/하위 폴더 및 파일에 액세스하는 Centos 8 Linux를 사용하고 있습니다. 모든 파일과 폴더에 umask를 0002로 설정하는 그룹에 대한 쓰기 권한이 있어야 사용자가 생성한 새 파일이 올바른 권한을 가질 수 있지만 사용자가 추출한 tar 및 기타 압축 파일이 있는데 추출된 파일은 원래 가지고 있던 권한을 유지합니다. 일부 파일에는 그룹이 아닌 소유자에 대한 권한만 부여되어 변경되지 않습니다. 그룹에 쓰기를 허용하기 위해 사용자가 chmod를 실행할 필요 없이 자동으로 권한을 설정하는 방법을 찾으려고 합니다. 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