有没有办法到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/