从以下位置下载打开的 JDK tar.gz 文件https://jdk.java.net/15/。当我使用命令 tar -xf openjdk-15.0.2_linux-x64_bin.tar.gz 在一个框上展开此文件时,权限如下所示
drwxr-xr-x 2 me me 4.0K Feb 17 15:57 bin
另一方面,当将同一文件复制到其他框并使用相同命令展开时
drwxr-x--- 2 me me 4.0K Feb 17 16:37 bin
同样的情况也适用于 bin 目录中的其他文件 - 除了我自己(我展开了该文件)之外,没有人具有执行权限。因此,我无法以其他用户身份执行任何 java 命令。
两台机器都是 Ubuntu 20.04。是什么导致了这种差异?
答案1
如中所述man tar
,当您以非特权用户身份提取档案时tar
,默认行为是将调用用户的umask
权限应用于提取的文件:
--no-same-permissions
Apply the user's umask when extracting permissions from the ar‐
chive (default for ordinary users).
具体来说,umask 为0027
会删除 所有权限others
,而0022
仅删除写权限。