tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-x: Operation not permitted
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)
我的文件位于“下载”文件夹中,并且正在将安装文件从“下载”文件夹运行到 /opt/pkg 文件夹,以下是我使用的命令
chmod -R 777 Downloads/*
sudo chmod -R 777 /opt/*
chmod +x petalinux-v2017.1-final-installer.run
./petalinux-v2017.1-final-installer.run /opt/pkg
Run Code Online (Sandbox Code Playgroud)
最后安装程序失败并给出上述错误消息。我提供下载文件夹和/opt/pkg
文件夹所需的所有权限。
问题:tar 的权限无法恢复
答:只有root才可以。
参考:阅读askubuntu上的信息问答:
即使您使用
tar
's--same-owner
标志,您仍然需要以 root 身份提取文件以保留所有权。
更新:tar
以下是有关的行为的更多详细信息。假设我们已经user1
创建了一个存档,其中tar cvpzf test.tar.gz .
包含user2
. 如果我们将存档提取到具有user2
权限的目录中777
,结果如下:
$ tar xpvzf test.tar.gz
./
./file1
./file2
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxrwxr-x: Operation not permitted
tar: Exiting with failure status due to previous errors
$ ls -al
drwxrwxrwx 2 user2 user2 .
-rw-rw-r-- 1 user1 user1 file1
-rw-rw-r-- 1 user1 user1 file2
Run Code Online (Sandbox Code Playgroud)
tar
抛出错误,因为它无法更改 所拥有的文件的所有权和权限user2
。然而,这些文件虽然属于user1
.
如果在所有者拥有的目录中执行提取,则会发生以下情况user1
:
$ tar xpvzf test.tar.gz
./
./file1
./file2
$ ls -al
drwxrwxr-x 2 user1 user1 .
-rw-rw-r-- 1 user1 user1 file1
-rw-rw-r-- 1 user1 user1 file2
Run Code Online (Sandbox Code Playgroud)
文件夹和文件的权限都会恢复,即使user2
无法恢复所有权,也不会引发任何错误。
从OP自己的回答来看,安装程序似乎会检查 的tar
退出代码并在遇到错误时停止。chown
将文件夹分配给当前用户会导致tar
失败,但安装程序可以继续。
归档时间: |
|
查看次数: |
25063 次 |
最近记录: |