尽管在命令之前使用了 umask 000,Shell 脚本还是“权限被拒绝”

尽管在命令之前使用了 umask 000,Shell 脚本还是“权限被拒绝”

我有一个 shell 脚本 (build.sh),它以尝试将一些文件复制到新目录中结束。然而它说:

mkdir:无法创建目录“/files/ondisk/shared//comp/auto/bleeding-1169-b28d31a”:权限被拒绝

运行脚本时。

命令是:

( umask 000; mkdir -p "${BASE}/${TARGET}" ) || exit -1
( umask 000; cp -r ${STORE} "${BASE}/${TARGET}" ) || exit -1

umask 000 是否不能确保我能够写入该位置?

答案1

路径名中的双斜杠看起来很奇怪。也许你没有权限写${BASE},这可能是/files/ondisk/shared。该umask值无关紧要,因为它只影响创建的目录和文件的权限,mkdir而不cp影响要复制到的现有目录的权限。

相关内容