unix - 设置 tarfile 内容的文件权限

标签 unix tar

有没有办法到chmod 777在分发之前创建(或之后不久)tarfile 的内容?被tar'd 的目录的写权限在tar'ing 时是未知的(但通常为555)。我希望展开的目录是世界可写的,而无需展开 tar 的用户必须记住 chmod -R 777 <untarred dir>在继续之前。

笨拙的方法是复制目录,然后 chmod -R 777 <copydir>但我想知道是否有更好的解决方案。

我在 Solaris 10 机器上。

后台:

根目录在我们的 ClearCase vob 中,递归地具有特定的文件权限。一个 tarfile 被创建并分发给我们组织内的多个“客户”。大多数只需要读取/执行权限(特别是不希望它们可写),但一组特别需要其副本可递归写入,因为他们可以编辑这些文件,甚至恢复到"new"副本(即,在我给他们的原始状态下)。

这个小组在技术上有些挑战。尽管他们有关于 tarfile 的“操作方法”的说明,但他们似乎总是忘记(或出错)将文件设置为在解压缩后可递归写入。这导致我调用我诊断各种问题,其根本原因是他们忘记执行(或错误执行)展开目录的 chmod'ing。

在你问之前,是的,我给他们写了一个解压/chmod 的脚本(专门针对他们),但是......哦,没关系。

所以,我想我会创建一个单独的、可递归写入的 tar 版本来分发给他们。正如我最初所说,我总是可以创建目录的副本,使副本递归可写,然后将副本目录压缩,但目录相当大,并且磁盘空间有时接近满(可能变化很大),所以制作目录的副本在 100% 的情况下都不可行。

最佳答案

对于 GNU tar,使用 --mode创建存档时的选项,例如:

tar cf archive.tar --mode='a+rwX' *

但请注意,当提取存档时,默认情况下将应用 umask。因此,除非用户的 umask 为 000,否则权限将在此时更新。但是,可以使用 -p 忽略 umask。 ( --preserve ) 选项,例如:
tar xfp archive.tar

关于unix - 设置 tarfile 内容的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130195/

相关文章:

php - PharData 文件名长度限制

linux - 如何在 Unix/Linux 中找到文件中出现频率最高的 10 个词

linux -/etc/lsb-release : No such file or directory

windows - 在 Windows 上使用 sed 附加到每行末尾?

linux - 如何比较两个压缩包的内容

java - 为什么我的解压包不包含最后一个字节

linux - 用于检查 sybase iq 状态的 shell 脚本

bash - 如何在 Bash 中更改全局背景颜色

python - 如何在 Python 2.4 中使用 TarFile 取消引用标志?

bash - 对于查看 .tgz 文件中的源文件有什么建议吗?