我使用的是Centos 8 Linux,它的多个用户属于同一个组,访问同一个FS (xfs)中的数字ff文件夹/子文件夹和文件。我希望所有文件和文件夹都具有将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
文件不会更改其权限。
是否有办法强制从压缩存档中创建或提取所有文件,以从主文件夹继承权限?
发布于 2020-03-09 07:16:05
我仍然在寻找更好的解决方案,但现在我创建了一个脚本,将tar输出输送到chmod命令
#!/bin/bash -
set -o pipefail
tar xvf "$@" | xargs -rd '\n' chmod 770 --
我不太喜欢它,因为指示100和更多的用户使用不同的命令是很棘手的,但是如果找不到更好的解决方案,我将保留它。仅仅为了获取手册页的信息,tar似乎有一个应该忽略文件权限的选项。
--no-same-permissions
但似乎只有当umask权限比解压缩文件上的权限限制性更强时,才能工作,不知道这是否是一个bug
发布于 2020-03-08 08:50:56
您可以使用star
执行,执行tar
及其-chmod
选项在提取时设置文件的权限:
star -x -o -f file.tar -find -chmod ug+rwX
https://unix.stackexchange.com/questions/571639
复制相似问题